<c: установить и <c: если весной - PullRequest
3 голосов
/ 27 июня 2011

Я использую c: set и c: if в jsp (я использую Spring MVC 3)

<c:set var="myVar" value="${JavaClass.MY_KEY}"/>  
<c:if test="${myVar == code}">  
    Do Somthing  
</c:if>  

но в этом случае c: если код не выполняется.

Когда я даю (без c: set)

<c:if test="${'ABC' == code}">  
    Do Somthing  
</c:if>     

это работает.

Может кто-нибудь сказать мне, что я делаю не так

Спасибо

Ответы [ 2 ]

4 голосов
/ 27 июня 2011

Вы не можете получить доступ к JavaClass.MY_KEY напрямую, используя JSP EL, но вы можете сделать это с помощью однострочного скриплета *.

<c:set var="myVar" value="<%=JavaClass.MY_KEY%>"/>

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

4 голосов
/ 27 июня 2011

${JavaClass.MY_KEY} ищет объект на странице, затем запрос, затем сеанс, затем область приложения, сохраненную под именем атрибута JavaClass. Если он находит его, он вызывает метод getMY_KEY() для этого объекта.

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

Нет способа получить доступ к константам класса, используя JSP EL. Лучшее, что вы можете сделать, - это сохранить какой-то объект в некоторой области видимости, а методы получения возвращают константы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...