У меня есть переменная из объекта на моей странице JSP:
<%= ansokanInfo.getPSystem() %>
Значение переменной - NAT, что является правильным, и я хочу применить определенные элементы страницы для этого значения. Как использовать тег, чтобы узнать случай? Я пробовал что-то вроде
<c:if test = "${ansokanInfo.getPSystem() == 'NAT'}">
process
</c:if>
Но приведенное выше ничего не отображает. как мне это сделать? Или я могу использовать скриптлеты, т.е.
<% if (ansokanInfo.getPSystem().equals("NAT"){ %>
process
<% } %>
Спасибо за любой ответ или комментарий.
getPSystem()
иansokanInfo
? вы их задаете в запросе или обращаетесь к ним черезimport
?Ответы:
Пытаться:
<c:if test = "${ansokanInfo.PSystem == 'NAT'}">
JSP / Servlet 2.4 (я думаю, это номер версии) не поддерживает вызовы методов в EL, а поддерживает только свойства. Последние контейнеры сервлетов поддерживают вызовы методов (например, Tomcat 7).
источник
<c:if test = "${ansokanInfo.PSystem == 'NAT' || ansokanInfo.PSystem == 'CAT'}">
<c:if test="${ansokanInfo.pSystem eq 'NAT'}">
источник
Я думаю, что в других ответах упускается одна важная деталь, касающаяся имени свойства, используемого в выражении EL. Правила преобразования имен методов в имена свойств указаны в Introspector.decpitalize, который является частью стандарта java bean-компонентов:
Итак, в вашем случае код JSTL должен выглядеть следующим образом, обратите внимание на заглавную букву «P»:
<c:if test = "${ansokanInfo.PSystem == 'NAT'}">
источник
Вы можете использовать скриптлеты, но это не выход. В наши дни встроенные скрипты или код JAVA в ваших файлах JSP считаются плохой привычкой.
Вам следует почитать о JSTL немного больше. Если объект ansokanInfo находится в области вашего запроса или сеанса, распечатайте объект (метод toString ()) следующим образом: $ {ansokanInfo} может предоставить вам некоторую базовую информацию. $ {ansokanInfo.pSystem} должен вызвать метод получения объекта. Если все это работает, вы можете использовать это:
<c:if test="${ ansokanInfo.pSystem == 'NAT'}"> tataa </c:if>
источник