代码改变世界

SSH整合之-OpenSessionInViewFilter为何无效?

2014-01-15 10:14  _cha1R  阅读(379)  评论(0编辑  收藏  举报

今天从新搭建了一下SSH整合架构,在使用多对一时发现在JSP上用多方获取一方时,报出了 session is closed的错误。但是我在web.xml明明有配OpenSessionInViewFilter,那为什么会出现这个情况呢?

研究了一下,我犯了两个错误。

第一个错误,在OpenSessionInViewFilter的<fileter-mapping>里,应该排在struts2前面,至于为什么会这样?估计是加载顺序的问题,WEB.XML里谁排在前面,谁就先执行。

第二个错误,<url-pattern>里,我把路径配成*.action了。很明显,要后缀名为.action的URL才会被这个拦截器过滤。因为配置代码我是拷贝以前的练习项目的,为什么会加*.action呢?原因是以前只配*的话,过滤器会所有URL都过滤掉,包括图片什么的。比较浪费性能。还有一点就是以前的练习项目比较规范,所有action后缀名都加上.action,所以没出现这个错误。而现在我暂时把它改成了/*。这就暂时解决了。