我有一个struts动作流程(struts-1.x框架),当执行时,动作类ActionFlowActionUnit1.java
将String
变量varName
设置为request
使用代码
request.setAttribute("varNameFromRequest", varName);
并且流程最终导致加载jsp
Page1.jsp
。
现在,Page1.jsp
包含一个按钮,当单击该按钮时,会启动一个新的struts操作流,该流具有操作类ActionFlowActionUnit2.java
。在本课程中,我想使用我在varName
请求中设置的request.getAttribute()
。
我怎样才能不使用会话?
从技术上讲,我不确定是否可以使用request
实现此目的,因为触发新的struts-action将丢失之前设置的request
中的所有其他信息(如果我'我正确的。)
我无法从谷歌那里得到任何东西。
答案 0 :(得分:1)
正如你所说的那样,技术上并不是你想要的(来自浏览器的每个http请求都会创建一个新的HttpServletRequest
对象)
您有两个选择:
Session
第二个选项意味着将一些参数存储在Page1.jsp <form>
中,并使用您需要接收第二个动作的变量,然后进行冲洗并重复。这是一个纯粹的html表单解决方案。
如果您正在实现复杂的流程,那么看一下Spring Webflow就是一个很好的例子。在那里,您可以管理流级变量,这些变量存储在与请求或会话“不同”的范围内,并且看起来完全符合您的要求。