Question: I have the following question:
I need to pass a parameter (for example ID ) when I finish a form and the action save the form's values, this will forward to the result = "success" and I need that the action that will be call in the success come with the ID and other parameters to later use in the next form for save this information (info-form2 and info.form1)...

for example:

**FORM1 ( USER ) ==== "success" ====> FORM2 ( ADDRESS )**

*userForm.html ===================> addressForm.html?user\_id=X ...(where X : Id passed throw of UserAction (method:save) to AddressAction (method:newAddress))*

Please I will appreciate your help

Thanks in advance

Answer: 
You used the word "forward" but it sounds like you want to go to a new page (address.html) to collect more information about the address. If this is the case, you need to redirect to the address page after the user action completes.

```
<action name="user" class="UserAction">
  <!-- Redirect to another namespace -->
  <!-- for Struts 2.2 --> <result type="redirectAction">
  <!-- for Struts 2.0 <result type="redirect-action"> -->
    <param name="actionName">collect-address</param>
    <param name="userId">${userId}</param>
  </result>
</action>

```

The ${userId} syntax will call getUserId on your UserAction and pass that parameter as you showed in your question: addressForm.html?user\_id=X. collect-address can have a success result that goes to addressForm.html. [Docs here.](http://struts.apache.org/2.0.6/docs/redirect-action-result.html) If you want to avoid using another action, you can try [using the result type="redirect"](http://struts.apache.org/2.0.6/docs/redirect-result.html) and pass things through that way.

If you really want to forward, you can use [action chaining](http://struts.apache.org/2.0.6/docs/action-chaining.html). This is [discouraged by Ted Husted on the Struts2 team](http://www.mail-archive.com/user@struts.apache.org/msg53168.html) but it may work for you.

Instead of action chaining, try to bring all the code to complete this request into a single action and use helper or service classes for User and Address to separate and reuse the code instead of "action chaining".
This should work:

```
  <!--  Package Default -->
    <package name="**default**" extends="struts-default,json-default" namespace="/">
        <action name="noOp" class="com.web.myapp.action.NoOpAction">
           <result name="success" type="chain">
                    <param name="requiresValidation">true</param>
                    <param name="actionName">userAuthentication</param>
                    <param name="namespace">/user</param>
          </result>
        </action>   
    </package>
    <!--  Package User -->
    <package name="user" extends="struts-default,json-default" namespace="/user">
    <action name="userAuthentication" class="com.web.myapp.action.AuthenticateAction">
    ...
    </action>

```