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