2011-10-19 29 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页面将创建一个。