Okay here is the idea I proposed earlier ("Struts (MVC) Shortcomings?") in more solid thought.
My hope in this is to provide an non-hard-coding mechanism to take advantage of reusable logic without having to forward around to a bunch of Action classes (which doesn't work anyways). Here is my proposal: An action mapping could have an associated Process Config specified in the <set-property> of the action class. Something like: <set-property name="processor" value="processa" /> An associated config file called processor.xml could be set up to define process patterns that have names associated with the value attribute of the set-property. Something like: <processor> <process-group name="processa"> <process-action name="com.mydomain.ProcessThisA"> <process-action name="com.mydomain.ProcessThisB"> </process-group> <process-groupname="processb"> <process-action name="com.mydomain.ProcessThisB"> <process-action name="com.mydomain.ProcessThisC"> </process-group> <process-groupname="processd"> <process-action name="com.mydomain.ProcessThisX"> <process-action name="com.mydomain.ProcessThisC"> <process-action name="com.mydomain.ProcessThisN"> </process-group> </processor> This config info could be placed into the Application Scope at the app startup using the plugin mechanism of Struts 1.1. When an Action is called it would look to see what "process group" it needs to call and using reflection to perform the specified chain of processing in the order specified in the process-groupname config. A process class would conform to an interface and would have access to everything that the Action has access to. This way any errors or scoped beans/Attributes that need to be set can be set from within the process class. Also, the process class could access other logic beans for sql and such. Any unique coding that needs to happen can still be contained in an Action class. But for code that is reusable. This would be very nice. Brandon Goodin Phase Web and Multimedia P (406) 862-2245 F (406) 862-0354 [EMAIL PROTECTED] http://www.phase.ws -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>