【问题标题】:How do you check for a valid session in Struts 2 jsp?如何在 Struts 2 jsp 中检查有效会话?
【发布时间】:2011-10-19 14:45:38
【问题描述】:

我的所有页面上都有一个包含jsp,其中包括js文件、css文件等。这个包含jsp也指的是带有“”的会话。

在我的应用程序的最后一页,该操作对 HttpSession 对象执行 session.invalidate。

所以当我的应用程序的最后一页出现并运行“”时,由于会话无效,我收到以下错误

2011-10-19 10:30:59,134 警告 com.opensymphony.xwork2.ognl.OgnlValueStack - 在针对值堆栈评估表达式“#session.user.isWhatever()”时捕获异常 java.lang.IllegalStateException:getAttribute:会话已经失效 在 org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1062) 在 org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:110) 在 org.apache.struts2.dispatcher.SessionMap.get(SessionMap.java:165) 在 ognl.MapPropertyAccessor.getProperty(MapPropertyAccessor.java:76)

我已尝试“#session neq null”来阻止错误出现,但这不起作用。

是否有任何条件/条件可用于阻止此错误?如何在 Struts 2 的 jsp 中检查会话是否有效?

【问题讨论】:

    标签: session struts


    【解决方案1】:

    检查是否存在已知会话值 - 在您的情况下,#session.user。你不应该做一个明确的空检查,IIRC(可能是错的)。根据应用程序的实际运行情况,您还可以检查 isNew,尽管这似乎没有必要。

    会话将“从不”为空——除非另有明确指示,否则只需点击一个 JSP 页面就会创建一个。

    【讨论】:

      猜你喜欢
      • 2013-01-04
      • 2014-11-22
      • 1970-01-01
      • 2011-11-08
      • 2012-02-26
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      相关资源
      最近更新 更多