在SSH框架中如果Dao组件继承的是HibernateDaoSupport类,在这种方式下,对象的加载方式是延迟加载,所以如果要在表现层即action中调用逻辑组件,会出现异常如:the owning Session was closed 就是在表现层调用Dao组件时session已经关闭,这是采用延迟加载造成的,由于Spring控制的Hibernate的生命周期只针对数据层和服务层,而未管理到表现层,所以会出现the owning Session was closed的现象。
解决办法:在web.xml中加入这样的代码:
<filter> <filter-name> OpenSessionInViewFilter </filter-name> <filter- class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name> OpenSessionInViewFilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
相关资源:ssh 分页代码(延迟加载)