java - 支柱 2 : parameters between Actions

标签 java jakarta-ee parameters struts2 struts-action

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

例如:

FORM1(用户)====“成功”====> FORM2(地址)

userForm.html ===================> addressForm.html?user_id=X ...(其中 X:Id 传递了 UserAction 的抛出(方法:save) 到 AddressAction (method: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。 collect-address 可以有一个进入 addressForm.html 的成功结果。 Docs here.如果您想避免使用其他操作,可以尝试 using the result type="redirect"并通过这种方式传递事物。

如果真的要转发,可以用action chaining .这是 discouraged by Ted Husted on the Struts2 team但它可能对您有用。

尝试将完成此请求的所有代码放入单个操作中,而不是操作链接,并使用 User 和 Address 的帮助程序或服务类来分离和重用代码,而不是“操作链接”。

关于java - 支柱 2 : parameters between Actions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/784527/

相关文章:

java - 我如何让 TestNG 在特定组中运行测试(从命令行)?

c++ - 为什么只有一个参数的宏除了双括号外不能按预期工作?

java - 在 JAVA 中查找两个不同的子字符串并打印它们之间的所有内容

java - 如何在 GridBagLayout 中的两个 JLabel 之间添加 JSeparator

java - 编写这些java数组的最佳方法是什么?

java - 在 GlassFish v2/v3 Prelude 上使用 JBoss 5 有什么理由吗?

java - 自定义 servlet 过滤器谷歌端点

java - 将@Resource注入(inject)普通类

function - Function.const 的目的是什么?

java - Struts2 中的 exceptParams 实际上排除了什么?