Java 跨2个不同的struts操作流使用请求

Java 跨2个不同的struts操作流使用请求,java,action,httprequest,struts-action,struts-1,Java,Action,Httprequest,Struts Action,Struts 1,我有一个struts action flow(struts-1.x framework),当执行时,action类ActionFlowActionUnit1.java使用代码将字符串变量varName设置为请求 request.setAttribute("varNameFromRequest", varName); 该流最终导致加载jspPage1.jsp 现在,Page1.jsp包含一个按钮,当单击该按钮时,将启动一个新的struts操作流,该操作流具有action类ActionFlowAc

我有一个struts action flow(struts-1.x framework),当执行时,action类
ActionFlowActionUnit1.java
使用代码将
字符串
变量
varName
设置为
请求

request.setAttribute("varNameFromRequest", varName);
该流最终导致加载
jsp
Page1.jsp

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

如何在不使用会话的情况下执行此操作

从技术上讲,我不确定是否可以使用
request
实现这一点,因为触发新的struts操作将丢失先前设置的
request
中的所有其他信息(如果我正确的话)


我无法从谷歌获得任何信息。

正如你所说,这在技术上是不可行的(浏览器的每个http请求都会创建一个新的
HttpServletRequest
对象)

您有两种选择:

  • 使用
    会话
    ,据我所知,您希望避免使用该会话
  • 在每个连续的请求中使用您希望保留的值来回地引入一些参数
第二个选项意味着在Page1.jsp
中存储一些参数,以及需要第二个操作接收的变量,然后冲洗并重复。这是一个纯html表单解决方案

如果您正在实现一个复杂的流,那么看看SpringWebFlow就可以了。在那里,您可以管理流级别变量,这些变量存储在与请求或会话“不同”的范围内,看起来完全符合您的需要