Struts 2:Actions之间的参数

我有以下问题:当我完成一个表单并且操作保存表单的值时,我需要传递一个参数(例如ID),这将转发到结果=“成功”,我需要将要调用的操作在成功中带来了ID和其他参数,以便以后在下一个表单中使用以保存此信息(info-form2和info.form1)…

例如:

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

userForm.html ===================> addressForm.html?user_id = X …(其中X:Id将UserAction抛出(方法:保存)传递给AddressAction(方法:newAddress))

我将非常感谢你的帮助

提前致谢

您使用了“转发”一词,但听起来您想要转到新页面(address.html)以收集有关该地址的更多信息。 如果是这种情况,则需要在用户操作完成后重定向到地址页面。

     collect-address ${userId}   

$ {userId}语法将在您的UserAction上调用getUserId并传递您在问题中显示的参数:addressForm.html?user_id = X. collect-address可以有一个成功的结果,转到addressForm.html。 文件在这里。 如果您想避免使用其他操作,可以尝试使用结果类型=“重定向”并通过该方式传递内容。

如果你真的想转发,你可以使用动作链 。 Ted Husted对Struts2团队不鼓励这样做,但它可能适合你。

而不是动作链接,尝试将所有代码完成此请求到单个操作中,并使用帮助器或服务类为User和Address分离和重用代码而不是“action chaining”。

不太清楚你想做什么。

在成功执行操作后,请求会转发到另一个操作。 在第一个操作中,您要传递参数ID并在第二个操作中使用它。 由于这两个操作都在同一个请求调用中使用,因此您可以像这样在请求中保存ID参数

request.setAttribute(“ID”,iDValueObject);

在第二个操作中,您可以像这样提取ID的值

request.getAttribute( “ID”);

这应该工作:

      true userAuthentication /user       ...