Mam zmienną z obiektu na mojej stronie JSP:
<%= ansokanInfo.getPSystem() %>
Wartością zmiennej jest NAT, która jest poprawna i chcę zastosować określone elementy strony dla tej wartości. Jak używać tagu, aby poznać sprawę? Spróbowałem czegoś takiego
<c:if test = "${ansokanInfo.getPSystem() == 'NAT'}">
process
</c:if>
Ale powyższe nic nie wyświetla. Jak mam to zrobić? Czy mogę równie dobrze użyć skryptletów, tj
<% if (ansokanInfo.getPSystem().equals("NAT"){ %>
process
<% } %>
Dzięki za każdą odpowiedź lub komentarz.
getPSystem()
iansokanInfo
? czy ustawiasz je w żądaniu czy uzyskujesz do nich dostępimport
?Odpowiedzi:
Próbować:
<c:if test = "${ansokanInfo.PSystem == 'NAT'}">
JSP / Servlet 2.4 (myślę, że to numer wersji) nie obsługuje wywołań metod w EL i obsługuje tylko właściwości. Najnowsze kontenery serwletów obsługują wywołania metod (np. Tomcat 7).
źródło
<c:if test = "${ansokanInfo.PSystem == 'NAT' || ansokanInfo.PSystem == 'CAT'}">
<c:if test="${ansokanInfo.pSystem eq 'NAT'}">
źródło
Myślę, że inne odpowiedzi pomijają jeden ważny szczegół dotyczący nazwy właściwości, która ma być używana w wyrażeniu EL. Zasady konwersji z nazw metod na nazwy właściwości są określone w pliku „Introspector.decpitalize”, który jest częścią standardu java bean:
Więc w twoim przypadku kod JSTL powinien wyglądać następująco, zwróć uwagę na duże „P”:
<c:if test = "${ansokanInfo.PSystem == 'NAT'}">
źródło
Możesz używać skryptletów, jednak nie jest to właściwe. W dzisiejszych czasach wbudowane wykresy lub kod JAVA w plikach JSP są uważane za zły nawyk.
Przeczytaj więcej o JSTL. Jeśli obiekt ansokanInfo znajduje się w zasięgu żądania lub sesji, wydrukowanie obiektu (metoda toString ()) w następujący sposób: $ {ansokanInfo} może dostarczyć podstawowych informacji. $ {ansokanInfo.pSystem} powinno wywołać metodę pobierającą obiekt. Jeśli to wszystko działa, możesz użyć tego:
<c:if test="${ ansokanInfo.pSystem == 'NAT'}"> tataa </c:if>
źródło