【问题标题】:Using request across 2 different struts-action flows在 2 个不同的 struts-action 流中使用请求
【发布时间】:2014-03-12 09:30:56
【问题描述】:

我有一个 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 中的所有其他信息(如果我是正确的)。

我无法从 Google 获得任何信息。

【问题讨论】:

    标签: java action httprequest struts-action struts-1


    【解决方案1】:

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

    你有两个选择:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多