доступ к константам в JSP (без скриптлета) [дубликат]

This question already has an answer here:

How to reference constants in EL? 12 answers

У меня есть класс, который определяет имена различных атрибутов сеанса, например,

class Constants {
    public static final String ATTR_CURRENT_USER = "current.user";
}

Я хотел бы использовать эти константы в JSP для проверки наличия этих атрибутов, что-то вроде:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="com.example.Constants" %>

<c:if test="${sessionScope[Constants.ATTR_CURRENT_USER] eq null}">
    <%-- Do somthing --%>
</c:if>

Но я не могу понять, правильно ли синтаксис. Кроме того, чтобы избежать повторения довольно длительных тестов, описанных выше, в нескольких местах, я хотел бы присвоить результат локальной переменной (в области страницы) и вместо этого обратиться к ней. Я верю, что могу сделать это с<c:set>, но я снова пытаюсь найти правильный синтаксис.

UPDATE: В дополнение к предложению ниже, я попытался:

<c:set var="nullUser" scope="session"
value="${sessionScope[Constants.ATTR_CURRENT_USER] eq null}" />

который не работал. Поэтому вместо этого я попытался подставить буквальное значение константы. Я также добавил константу к содержимому страницы, чтобы можно было проверить значение константы при визуализации страницы.

<c:set var="nullUser" scope="session"
value="${sessionScope['current.user'] eq null}" />
<%= "Constant value: " + WebHelper.ATTR_CURRENT_PARTNER %>

Это работало нормально, и оно печатало ожидаемое значение "current.user" на странице. Я затрудняюсь объяснить, почему используются строковые литералы, но ссылка на константу отсутствует, когда эти два значения имеют одно и то же значение. Помогите.....

Ответы на вопрос(7)

Ваш ответ на вопрос