Это действительно никогда null
.Сеанс всегда присутствует в JSP EL, , если вы не добавите
<%@page session="false" %>
к вершине JSP.Затем вы можете проверить сеанс следующим образом (только EL 2.2!):
<c:if test="${pageContext.request.getSession(false) != null}">
<p>The session has been created before.</p>
</c:if>
Я не уверен, каково конкретное функциональное требование.Если вы хотите проверить, является ли сеанс новым или уже создан, используйте вместо него HttpSession#isNew()
.
<c:if test="${not pageContext.session['new']}">
<p>You've already visited this site before.</p>
</c:if>
<c:if test="${pageContext.session['new']}">
<p>You've just started the session with this request!</p>
</c:if>
(обозначения в скобках для new
являются обязательными, потому что new
является зарезервированным литералом на языке Java)
Если вы полагаетесь на определенный атрибут сеанса, такой как зарегистрированный пользователь, который являетсябыло установлено как
session.setAttribute("user", user);
, тогда вы должны вместо этого перехватывать это:
<c:if test="${not empty user}">
<p>You're still logged in.</p>
</c:if>
<c:if test="${empty user}">
<p>You're not logged in!</p>
</c:if>