0

我有一个 struts 动作流(struts-1.x 框架),它在执行时,动作类ActionFlowActionUnit1.java设置一个String变量varNamerequest使用代码

request.setAttribute("varNameFromRequest", varName);

并且流程最终导致加载 a jsp Page1.jsp

现在,Page1.jsp包含一个按钮,当单击该按钮时,将启动一个新的 struts 动作流,该动作流具有 action 类ActionFlowActionUnit2.java。在这堂课中,我想使用varName我在请求中设置的request.getAttribute().

不使用 SESSION怎么办?

从技术上讲,我不确定是否可以实现这种使用request,因为触发新的 struts-action 将丢失request之前设置的所有其他信息(如果我是正确的)。

我无法从谷歌得到任何东西。

4

1 回答 1

1

正如您所说,从技术上讲,您想要它是不可行的(来自浏览器的每个 http 请求都会创建一个新HttpServletRequest对象)

您有 2 个选项:

  • 使用Session,据我了解,您要避免使用
  • 使用您希望保留的值在每个连续请求中来回引入一些参数。

第二个选项意味着将一些参数存储在您的 Page1.jsp<form>中,其中包含您需要您的第二个操作来接收的变量,然后冲洗并重复。这是一个纯 html 表单解决方案。

如果您正在实现一个复杂的流程,那么看看 Spring Webflow 是一个合理的案例。在那里,您可以管理流级变量,这些变量存储在与请求或会话“不同”的范围内,并且看起来正是您想要的。

http://projects.spring.io/spring-webflow/

于 2014-03-12T09:44:08.950 回答