Save This Page
Home » struts-1.3.9-src » org.apache.struts » chain » [javadoc | source]
org.apache.struts.chain
public class: ComposableRequestProcessor [javadoc | source]
java.lang.Object
   org.apache.struts.action.RequestProcessor
      org.apache.struts.chain.ComposableRequestProcessor

ComposableRequestProcessor uses the Chain Of Resposibility design pattern (as implemented by the commons-chain package in Jakarta Commons) to support external configuration of command chains to be used. It is configured via the following context initialization parameters:

Field Summary
public static final  String ACTION_CONTEXT_CLASS   

Token for ActionContext clazss so that it can be stored in the ControllerConfig.

 
protected static final  Log LOG   

The Log instance for this class.

 
protected  CatalogFactory catalogFactory   

The CatalogFactory from which catalog containing the the base request-processing Command will be retrieved.

 
protected  Catalog catalog   

The Catalog containing all of the available command chains for this module. 

protected  Command command   

The Command to be executed for each request.

 
Method from org.apache.struts.chain.ComposableRequestProcessor Summary:
contextInstance,   createActionContextInstance,   destroy,   init,   initCatalogFactory,   initializeActionContext,   process,   processMultipart,   setCatalogFactory
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.struts.chain.ComposableRequestProcessor Detail:
 protected ActionContext contextInstance(HttpServletRequest request,
    HttpServletResponse response) throws ServletException 

    Provide the initialized ActionContext instance which will be used by this request. Internally, this simply calls createActionContextInstance followed by initializeActionContext.

 protected ActionContext createActionContextInstance(ServletContext servletContext,
    HttpServletRequest request,
    HttpServletResponse response) throws ServletException 

    Create a new instance of ActionContext according to configuration. If no alternative was specified at initialization, a new instance ServletActionContext is returned. If an alternative was specified using the ACTION_CONTEXT_CLASS property, then that value is treated as a classname, and an instance of that class is created. If that class implements the same constructor that ServletActionContext does, then that constructor will be used: ServletContext, HttpServletRequest, HttpServletResponse; otherwise, it is assumed that the class has a no-arguments constructor. If these constraints do not suit you, simply override this method in a subclass.

 public  void destroy() 

    Clean up in preparation for a shutdown of this application.

 public  void init(ActionServlet servlet,
    ModuleConfig moduleConfig) throws ServletException 

    Initialize this request processor instance.

 protected  void initCatalogFactory(ActionServlet servlet,
    ModuleConfig moduleConfig) 

    Establish the CatalogFactory which will be used to look up the catalog which has the request processing command.

    The base implementation simply calls CatalogFactory.getInstance(), unless the catalogFactory property of this object has already been set, in which case it is not changed.

 protected  void initializeActionContext(ActionContext context) 

    Set common properties on the given ActionContext instance so that commands in the chain can count on their presence. Note that while this method does not require that its argument be an instance of ServletActionContext, at this time many common Struts commands will be expecting to receive an ActionContext which is also a ServletActionContext.

 public  void process(HttpServletRequest request,
    HttpServletResponse response) throws IOException, ServletException 

    Process an HttpServletRequest and create the corresponding HttpServletResponse.

 protected HttpServletRequest processMultipart(HttpServletRequest request) 

    If this is a multipart request, wrap it with a special wrapper. Otherwise, return the request unchanged.

 public  void setCatalogFactory(CatalogFactory catalogFactory) 

    Set the CatalogFactory instance which should be used to find the request-processing command. In the base implementation, if this value is not already set, then it will be initialized when #initCatalogFactory is called.