This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Technically, though, you can extend any class in Struts that isn't declared as final. Struts is open-source, so you can look at the source and extend classes as needed. ActionServlet, RequestProcessor, ActionMapping, etc. can all be extended. I wouldn't recommend doing so, however, unless you're doing something that just doesn't fit into the way Struts works by default.
DispatchAction and LookupDispatchAction both extend Action. you can extend pretty much everything like what merrill said, but consider first the reason(s) for extension.
i generally stay way from the core classes. consider using servlet filters to do generic pre-processing (e.g authentication) and post-processings (e.g applying xslt). there are properties of the struts controller that are configurable, but unknown and lead to unecessary extension (e.g setting nocache).
it is a good idea though to extend the Action classes since you can move common action codes such as the forwarding and error processings into 1 place. action form is another, but declarative form bean definitions cannot be extended (unless you customize the ActionServlet
-/a<br />certified slacker...yes, my last name is 'do' - <a href="http://www.luckycouple.com" target="_blank" rel="nofollow">luckycouple.com</a>
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com