2011-10-19 64 views
0

我在我的所有頁面上都包含jsp,其中包括js文件,css文件等。這包括jsp也指的是帶有「」的會話。如何檢查Struts 2 jsp中的有效會話?

在我的應用程序的最後一頁上,該操作在HttpSession對象上執行session.invalidate。

所以,當出現在我的應用程序的最後的最後一頁,並運行了「」,我得到以下錯誤,因爲會話無效

2011-10-19 10:30:59134 WARN融爲一體。 opensymphony.xwork2.ognl.OgnlValueStack - 在評估表達式'#session.user.isWhatever()'時發現異常針對值堆棧 java.lang.IllegalStateException:getAttribute:會話已經失效 at org.apache.catalina.session.StandardSession .getAttribute(StandardSession.java:1062) at org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:110) at org.apache.struts2.dispatcher.SessionMap.get(SessionMap.java:165) 在ognl.MapPropertyAccessor.getProperty(MapPropertyAccessor.java:76)

我已經試過 「#session NEQ空」 停止出現錯誤,但不起作用。

有反正/有條件可以用來阻止這個錯誤嗎?如何檢查會話在Struts 2的jsp中是否有效?

回答

0

檢查是否存在已知會話值 - 在您的情況下,#session.user。你不應該做一個明確的空檢查,IIRC(可能是錯誤的)。根據應用中的實際情況,您還可以檢查isNew,雖然這看起來應該沒有必要。

會話將「永不」爲空 - 除非明確指示,否則僅打一個JSP頁面將創建一個。