在使用hibernate时,我们经常会遇到题目上所说的问题,在上网搜索后,我们发现只需要在web.xml文件中加入以下两段代码
<web-app>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
</web-app>
但是,我在添加该代码后,问题还未解决,后来才发现,在web.xml中还存在struts2的过滤器,即
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注意,只有将hibernate的拦截器配置于struts2的拦截器后,问题才能够解决。