我有以下问题: 我需要传递一个参数(例如ID)当我完成一个形式和动作保存表单的值,这将转发到结果=“成功”,我需要的是将在成功地调用操作来与ID和其他参数,以在后面的下一个表格用于保存该信息(信息-窗口2和info.form1)...

例如:

<强> FORM1(USER)==== “成功” ====> FORM2(ADDRESS)

userForm.html ===================> addressForm.html USER_ID = X ...(其中,X:UserAction的编号传递掷(方法:保存)到AddressAction(方法:newAddress))

请我会感激你的帮助。

在预先感谢

有帮助吗?

解决方案

您用了“前进”,但它听起来像是你想要去到一个新的页面(address.html)收集有关地址的详细信息。如果是这样的话,你需要的用户操作完成后重定向到的地址页面。

<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>

在$ {} userId的语法会打电话给你的UserAction getUserId并传递参数,你在你的问题表明:addressForm.html USER_ID = X。收集地址可以有去addressForm.html成功的结果。 文档这里如果你想避免使用其他行动,你可以尝试使用的结果类型=“重定向” 和通过这种方式传递的东西。

如果你真的想转发,您可以使用动作链接。这是由Ted Husted在Struts2的小组灰心了,但它可能为你工作。

相反动作链接的,试图把所有的代码来完成这一请求转换成一个单一的操作,然后使用辅助或服务类的用户和地址分离和重复使用的代码,而不是“动作链”。

其他提示

不是很清楚你想要做什么。

看起来像一个动作的全成执行后,该请求被转发到另一个动作。在第一个动作你要传递的参数ID和使用,在第2个动作。由于两者都得到在同一请求中使用的操作调用可以保存ID参数在这样请求

了request.setAttribute( “ID”,iDValueObject);

在所述第二动作可以提取ID的这样的值

request.getAttribute( “ID”);

此应该工作:

  <!--  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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top