我有一个struts Action 流(struts-1.x框架),当执行时, Action 类ActionFlowActionUnit1.java
设置一个String
变量 varName
使用代码请求
request.setAttribute("varNameFromRequest", varName);
流程最终导致 jsp
Page1.jsp
的加载。
现在,Page1.jsp
包含一个按钮,单击该按钮会启动一个新的 struts 操作流,该操作流具有操作类 ActionFlowActionUnit2.java
。在此类中,我想使用我在请求中使用 request.getAttribute()
设置的 varName
。
如何不使用 session 做到这一点?
从技术上讲,我不确定使用 request
是否可以实现此目的,因为触发新的 struts-action 将丢失 request
中的所有其他信息先前设置(如果我是正确的)。
我无法从 Google 获得任何信息。
最佳答案
正如你所说,这在技术上并不可行(来自浏览器的每个http请求都会创建一个新的 HttpServletRequest
对象)
您有 2 个选择:
- 使用
Session
,据我所知你想避免 - 在每个后续请求中来回传递一些参数以及您希望保留的值。
第二个选项意味着在 Page1.jsp <form>
中存储一些参数对于变量,您需要第二个操作来接收,然后冲洗并重复。这是一个纯html表单解决方案。
如果您正在实现一个复杂的流程,那么看看 Spring Webflow 是一个不错的选择。在那里,您可以管理流级变量,这些变量存储在与请求或 session “不同”的范围内,并且看起来正是您想要的。
关于java - 在 2 个不同的 struts-action 流中使用请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22347128/