Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring mvc 3.0应用程序会话范围_Java_Spring_Spring Mvc - Fatal编程技术网

Java Spring mvc 3.0应用程序会话范围

Java Spring mvc 3.0应用程序会话范围,java,spring,spring-mvc,Java,Spring,Spring Mvc,使用左菜单时,我没有重定向到其他页面,而是使用href链接其他页面。但在这样做的同时,我的会话范围(仅限于请求)不再存在。 这是我的控制器代码: 设置会话: request.getSession(true).setAttribute("application", application); 正在其他控制器中获取会话对象: HttpSession session = request.getSession(); session.getAttribute("application"); //appl

使用左菜单时,我没有重定向到其他页面,而是使用href链接其他页面。但在这样做的同时,我的会话范围(仅限于请求)不再存在。 这是我的控制器代码:

设置会话:

request.getSession(true).setAttribute("application", application);
正在其他控制器中获取会话对象:

HttpSession session = request.getSession();
session.getAttribute("application"); //application null in href; redirect works fine
那么,我有没有办法在SpringMVC3中使用“应用程序”会话范围呢。这样我就可以通过我的应用程序访问会话

我在我的应用程序servlet.xml中尝试了这个代码片段

<!-- a HTTP Session-scoped bean exposed as a proxy --> 
<bean id="applicationVO" class="com.nypd.viewobjects.ApplicationVO" scope="globalSession"> 
<!-- this next element effects the proxying of the surrounding bean --> 
<aop:scoped-proxy/> 
</bean> 
我做错了什么

我还在控制器上尝试了
@SessionAttribute
@SessionAttributes(“applicationVO”)
但问题似乎仍然存在

如果有人能给我举一个两个控制器的小例子,我将不胜感激。

请阅读。这是:

所以您通常要做的是定义一个bean并在scope
session
中注册它。现在你可以把它注射到任何你需要的地方。请参阅,但要注意(具有非单例依赖项的单例对象)


或者,您可以使用
@SessionAttributes
机制从控制器中存储和检索任意会话数据。看

参考资料:


@会话属性不在会话作用域中存储数据。它将数据存储在会话作用域中,该作用域大于请求但小于会话。该作用域由spring对会话(跨越多个请求)进行内部管理,并在会话完成后删除


要将bean存储在会话作用域中,您必须在spring-context.xml中声明requestContextListner,这将向当前线程公开请求
@Autowired private ApplicationVO applicationVO;