2010-11-18 3 views
0

Я пытаюсь использовать OGNL, чтобы оценить, действителен ли сеанс, чтобы показать некоторую информацию. Для этого у меня есть следующий JSPStruts2 ognl выполнить запрос метод

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

Но это не работает. Я также попробовал «# request.isRequestedSessionValid()», «% {request.isRequestedSessionValid()}» и «{request.isRequestedSessionValid()}», но всегда получаю сообщение об ошибке java.lang.NullPointerException: target null для метода 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()]", который я не понимаю. Запрос имеет этот метод, так почему он не выбирает его? –