如何在执行服务器进程的同时在jsp中将类对象从一个页面传输到另一个页面,
例如,让我们有一个page1.jsp它有一个类Page
的commandObject page1然后我在page1.jsp,
中填写了一些值然后我希望将同一个对象转移到另一个页面,例如page2.jsp 在该页面上,我填充page1对象的剩余值,然后将其保存到数据库。
答案 0 :(得分:2)
在第1页的控制器的post方法中,再次将命令对象添加到模型中,并返回第2页的视图名称。
听起来您正在描述一个简单的对话工作流程。如果您的工作流程变得更加复杂,我建议您查看Spring Webflow。
答案 1 :(得分:0)
如果您不想(或不能)使用Singleton bean,那么使用request
或session
范围怎么样?它们是为这种情况定制的。
3.5.4.2请求范围
考虑以下bean 定义:
<bean id="loginAction" class="com.foo.LoginAction" scope="request"/>
Spring容器 创建一个新的实例
LoginAction
bean使用 每个loginAction
bean定义 和每个HTTP请求。那就是 loginAction bean的作用域是HTTP 请求级别。你可以改变 实例的内部状态 尽可能多地创建,因为 从其创建的其他实例loginAction
bean定义不会 看到这些状态的变化;他们是 特别是个人请求。 请求完成处理后, 作用于请求的bean 被丢弃了。
3.5.4.3会话范围
考虑以下bean 定义:
<bean id="userPreferences" class="com.foo.UserPreferences" scope="session"/>
Spring容器 创建一个新的实例
UserPreferences
bean使用userPreferences
bean的定义 单个HTTP会话的生命周期。 换句话说,userPreferences
bean有效地限定在HTTP上 会话级别。与请求范围一样 豆子,你可以改变内部 创建的实例的状态 知道这一点,尽你所能 其他HTTP会话实例 还使用从中创建的实例 相同的userPreferences bean定义 在状态中看不到这些变化, 因为它们特别适合 个人HTTP会话。当HTTP 会话最终被丢弃了 作用于该特定的bean HTTP会话也被丢弃。
<强>来源:强>