java - 在 2 个不同的 struts-action 流中使用请求

标签 java action httprequest struts-action struts-1

我有一个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 “不同”的范围内,并且看起来正是您想要的。

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

关于java - 在 2 个不同的 struts-action 流中使用请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22347128/

相关文章:

python - Python 中用于变量重复操作的快捷方式?

.net - Request ("key") 和 Request.Params ("key") 之间有什么区别吗?

javascript - 使用 Node.js 渲染页面时出现 css/js 文件引用错误

java - 快速排序算法改进

iphone - UIAlertView按钮操作代码

java - 数学方程结果在显示时丢失小数点

java - 使用注册表管理 Swing Action

ios - 将原始图像数据转换为base64编码的字符串

java - 在客户端代码中使用 RequestContext 接口(interface)时,GWT 应用程序在运行时崩溃

java - Selenium chromedriver 意外停止