2010-11-18 89 views
0

我正在尝试使用OGNL来评估会话是否有效,以便显示一些信息。为此我有以下JSPStruts2 ognl执行请求方法

[...] 
<s:if test="request.isRequestedSessionValid()"> 
[...] (show user name, etc) 
</s:if> 

但它不起作用。我也试过“#request.isRequestedSessionValid()”,“%{request.isRequestedSessionValid()}”和“{request.isRequestedSessionValid()}”,但我总是得到一个错误消息target java.lang.NullPointerException:target方法isRequestedSessionValid或[OgnlValueStack]无法找到方法[#request.isRequestedSessionValid()]。我究竟做错了什么?

谢谢!

回答

0

好的,现在我有机会深入了解这一点,我抛弃了我的旧答案。 #request将不起作用,因为这基本上等效于JSP EL表达式${requestScope.requestedSessionIdValid},但该属性不是请求范围属性,它的实际属性为HttpServletRequest

您可以轻松地与JSP EL使用做到这一点:

<c:if test="${pageContext.request.requestedSessionIdValid}"> 
    ... 
</c:if> 

我不知道,还有一个同样简洁的方式在此取得与OGNL。

+0

似乎没有工作。我尝试了“%{#request.requestedSessionIdValid}”,“%{#request.isRequestedSessionIdValid}”和“%{#request.isRequestedSessionIdValid()}”,但没有成功。最后一个给了我这个例外“[OgnlValueStack]无法找到方法[#request.isRequestedSessionIdValid()]”,我不明白。该请求具有该方法,那么为什么它没有选择它? – 2010-11-19 13:30:52