Подтвердить что ты не робот

JSTL, если тег для равных строк

У меня есть переменная от объекта на моей странице JSP:

<%= ansokanInfo.getPSystem() %>

Значение переменной - это NAT, который является правильным, и я хочу применить определенные элементы страницы для этого значения. Как использовать тег, чтобы узнать об этом случае? Я попробовал что-то вроде

<c:if test = "${ansokanInfo.getPSystem() == 'NAT'}">      
   process  
</c:if> 

Но выше ничего не отображается. Как я должен это делать? Или я также могу использовать скриптлеты, т.е.

<% if (ansokanInfo.getPSystem().equals("NAT"){ %>
process
<% } %>

Спасибо за любой ответ или комментарий.

4b9b3361

Ответ 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>