1. 程式人生 > >no session問題的產生與解決

no session問題的產生與解決

  1. no session問題的產生是由於,才有物件導航載入資料,頁面使用資料時,由於session已經關閉,無法載入相應資料,此時,可以配置關聯關係時設定lazy屬性=false,立即載入方法,也可以提前使用資料,使其自動載入,這裡介紹使用 OpenSessionInViewFilter解決no session問題
  2. 在使用了Spring的情況下,解決這個問題很簡單,因為Spring已提供了這個過濾器來解決nosession or session is closed這個問題。
<!-- 配置OpenSessionInViewFilter解決nosession問題
    該過濾器必須配置在struts2核心控制期之前,否則action訪問不了
   -->
<filter> <filter-name>openSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>openSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern> </filter-mapping>

注意:這個過濾器要放在struts2核心控制器之前進行配置
也可以配置它的兩個引數:singleSession,sessionFactoryBeanName
sessionFactoryBeanName預設值是sessionFactory
singleSession預設值是true
OpenSessionInViewFilter的缺點是如果物件導航層級較多,會導致頁面的載入速度變慢。