【发布时间】:2010-04-05 23:46:20
【问题描述】:
在流程中从一个页面到另一个页面传递表单参数的最佳实践或最佳方式是什么?如果我有一个流程,其中用户在表单中输入数据并点击下一步并重复此过程,直到他们到达批准页面,我可以通过哪些方式解决此问题以使数据保留在流程中尽可能简单?
我想您可以在会话中输入所有信息,但如果很多人同时使用您的应用程序并浏览流程,您是否会遇到记忆问题?
【问题讨论】:
在流程中从一个页面到另一个页面传递表单参数的最佳实践或最佳方式是什么?如果我有一个流程,其中用户在表单中输入数据并点击下一步并重复此过程,直到他们到达批准页面,我可以通过哪些方式解决此问题以使数据保留在流程中尽可能简单?
我想您可以在会话中输入所有信息,但如果很多人同时使用您的应用程序并浏览流程,您是否会遇到记忆问题?
【问题讨论】:
如果您想跟踪“向导”样式的数据条目,HttpSession 是您的最佳选择。 只是附议@Rachel 的意见。
处理您的页面提交的服务器端组件(例如 Servlet)将包含如下代码:
public void doPost (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
HttpSession session = req.getSession();
session.setAttribute("Variable1", request.getParameter("input1"));
//and so on..
HttpSession 提供了一种在多个页面请求或访问网站时识别用户并存储有关该用户的信息的方法。
【讨论】:
HttpSession#putValue() 自 Servlet 2.2(>10 年前)以来已弃用。请改用HttpSession#setAttribute()。此外,您可以只使用 request.getSession() 而不使用布尔值来获取它,无论它是否已经创建。
您也可以将属性放在请求范围内。从 JSP 中的 EL 以相同的方式访问它们,但不需要会话。根据您的情况,您可能不希望为每个用户启动会话。
【讨论】: