You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by ni...@apache.org on 2005/11/11 04:24:26 UTC

svn commit: r332435 - /struts/core/trunk/xdocs/userGuide/building_controller.xml

Author: niallp
Date: Thu Nov 10 19:24:19 2005
New Revision: 332435

URL: http://svn.apache.org/viewcvs?rev=332435&view=rev
Log:
Fix for Bug 37462 - Clarifications for ComposableRequestProcessor docs - based on a patch supplied by Christian Meder

Modified:
    struts/core/trunk/xdocs/userGuide/building_controller.xml

Modified: struts/core/trunk/xdocs/userGuide/building_controller.xml
URL: http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/userGuide/building_controller.xml?rev=332435&r1=332434&r2=332435&view=diff
==============================================================================
--- struts/core/trunk/xdocs/userGuide/building_controller.xml (original)
+++ struts/core/trunk/xdocs/userGuide/building_controller.xml Thu Nov 10 19:24:19 2005
@@ -156,15 +156,19 @@
 
     <p>
     The RequestProcessor is where the majority of the core processing 
-    occurs for each request.  
-    Since Struts 1.3, the default Request Processor is composed using 
-    <a href="http://jakarta.apache.org/commons/chain/">Jakarta Commons Chain</a>. 
-    Each step of the processing is represented as a separate Commaind in the Chain.
+    occurs for each request. Since Struts 1.3, the default Request Processor
+    (<code>ComposableRequestProcessor</code>) is composed using 
+    <a href="http://jakarta.apache.org/commons/chain/">Jakarta Commons Chain</a>,
+    which is an implementation of the <i>Chain of Responsibility</i> pattern (CoR). 
+    It is designed as a drop-in replacement of the Struts 1.2.x behaviour and brings
+    greater flexibility and easier customization to the request processing process.
+    Each step of the processing is represented as a separate Command in the Chain.
     By inserting, substituting, or removing Commands, 
     you can customize Struts to work <i>your</i> way.
-    Let's take a look at the commands on the RequestProcessor Chain in turn. 
-    Each of these Command classes are in the [org.apache.struts.chain.commands.servlet]
-    package.
+    Let's take a look at the <i>default</i> commands for the ComposableRequestProcessor
+    Chain in turn. These Command classes are in either the 
+    <code>org.apache.struts.chain.commands</code> or 
+    or <code>org.apache.struts.chain.commands.servlet</code> packages.
     </p>
 
     <table>
@@ -180,11 +184,10 @@
 
     <tr>
         <td>
-        SetContentType
+        SetOriginalURI
         </td>
         <td>
-        Set the default content type (with optional character encoding) for 
-        all responses if requested.
+        Store the URI of the original request in the request.
         </td>
     </tr>
 
@@ -200,14 +203,11 @@
 
     <tr>
         <td>
-        ProcessPreprocess
+        SetContentType
         </td>
         <td>
-	LookupCommand with optional="true".  Multiple
-        occurrences of this can easily be added, to
-        support additional processing hooks at any
-        point in the chain without modifying the
-        The default implementation simply returns true.  
+        Set the default content type (with optional character encoding) for 
+        all responses if requested.
         </td>
     </tr>
 
@@ -262,6 +262,25 @@
     
     <tr>
         <td>
+        SelectInput
+        </td>
+        <td>
+        If validation failed, select the appropriate ForwardConfig for return
+        to the input page.
+        </td>
+    </tr>
+    
+    <tr>
+        <td>
+        ExecuteCommand
+        </td>
+        <td>
+        Lookup and execute a chain command if the current ActionConfig is so-configured.
+        </td>
+    </tr>
+    
+    <tr>
+        <td>
         SelectForward
         </td>
         <td>
@@ -275,8 +294,16 @@
         SelectInclude 
         </td>
         <td>
-        If this mapping represents an include, include the result of 
-        invoking the path in this request.
+        Select the include uri (if any) for the current action mapping.
+        </td>
+    </tr>
+    
+    <tr>
+        <td>
+        PerformInclude 
+        </td>
+        <td>
+        If selected, include the result of invoking the path in this request.
         </td>
     </tr>
     
@@ -298,11 +325,22 @@
         This is the point at which your Action's execute method
         will be called.
         </td>
+    </tr>
+
     <tr>
         <td>
          ExecuteForwardCommand
         </td>
         <td>
+        Lookup and execute a chain command if the current ForwardConfig is so-configured.
+        </td>
+    </tr>
+
+    <tr>
+        <td>
+         PerformForward
+        </td>
+        <td>
         Finally, the process method of the RequestProcessor takes the 
         ActionForward returned by your Action class, and uses it to select the
         next resource (if any).
@@ -310,10 +348,31 @@
         renders the response.
         </td>
     </tr>
-    </tr>
 
     </table>
-        
+
+    <p>
+    In Struts 1.2.x, Tiles processing required configuring Struts to use the
+    <code>TilesRequestProcessor</code> implementation. In the Struts 1.3
+    <i>Chain</i> based request processor using Tiles simply 
+    involves configuring it to use an additional Tiles Command, and
+    deploying the tiles sub-project jar. The following Command is in the
+    <code>org.apache.struts.tiles.commands</code> package.
+    </p>
+
+    <table>
+    <tr>
+        <td>
+        TilesPreProcessor
+        </td>
+        <td>
+        Command class intended to perform responsibilities of the
+        TilesRequestProcessor in Struts 1.2.x
+        </td>
+    </tr>
+    </table>
+
+
 </subsection>
 
 <a name="process"/>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org