JSTL if 동일한 문자열 태그
JSP 페이지의 객체에서 변수를 받았습니다.
<%= ansokanInfo.getPSystem() %>
변수 값은 올바른 NAT이며 이 값에 특정 페이지 요소를 적용하고 싶습니다.케이스를 알기 위해 태그를 사용하는 방법은 무엇입니까?이런 걸 해봤는데
<c:if test = "${ansokanInfo.getPSystem() == 'NAT'}">
process
</c:if>
하지만 위에는 아무것도 표시되지 않습니다.어떻게 하면 좋을까요?아니면 스크립트렛을 사용할 수 있을까요?
<% if (ansokanInfo.getPSystem().equals("NAT"){ %>
process
<% } %>
답변이나 코멘트를 주셔서 감사합니다.
시험:
<c:if test = "${ansokanInfo.PSystem == 'NAT'}">
JSP/Servlet 2.4(버전 번호라고 생각합니다)는 EL의 메서드 호출을 지원하지 않으며 속성만 지원합니다.최신 서블릿컨테이너는 메서드콜(즉 Tomcat 7)을 지원합니다.
<c:if test="${ansokanInfo.pSystem eq 'NAT'}">
다른 답변은 EL 표현에서 사용할 속성 이름에 대한 중요한 세부 사항을 하나 놓쳤다고 생각합니다.메서드 이름에서 속성 이름으로 변환하는 규칙은 Java bean 표준의 일부인 'Introspector.decpitalize'에 지정되어 있습니다.
이것은 보통 첫 번째 문자를 대문자에서 소문자로 변환하는 것을 의미하지만, (비정상적인) 특수한 경우 첫 번째와 두 번째 문자가 모두 대문자인 경우에는 그대로 둡니다.
따라서 "FooBah"는 "fooBah"가 되고 "X"는 "x"가 되지만 "URL"은 "URL"로 유지됩니다.
따라서 JSTL 코드는 다음과 같이 표시되어야 합니다. 대문자 'P'에 주의하십시오.
<c:if test = "${ansokanInfo.PSystem == 'NAT'}">
스크립트렛을 사용할 수 있지만, 이 방법은 사용할 수 없습니다.현재 JSP 파일의 인라인스크립트 또는 JAVA 코드는 나쁜 습관으로 간주됩니다.
JSTL에서 좀 더 읽어보세요.ansokanInfo 객체가 요청 또는 세션 범위에 있는 경우 다음과 같이 객체(toString() 메서드)를 인쇄하면 기본 정보를 얻을 수 있습니다.$ {ansokanInfo}${ansokanInfo}입니다.pSystem}에서 개체 getter 메서드를 호출해야 합니다.이 모든 것이 유효하면, 다음을 사용할 수 있습니다.
<c:if test="${ ansokanInfo.pSystem == 'NAT'}"> tataa </c:if>
언급URL : https://stackoverflow.com/questions/10189963/jstl-if-tag-for-equal-strings
'itsource' 카테고리의 다른 글
휴지 상태 시퀀스가 존재하지 않습니다. (0) | 2022.09.03 |
---|---|
Https Connection Android (0) | 2022.09.03 |
정적 방식과 인스턴스 방식의 차이 (0) | 2022.09.03 |
UTC에서 LocalDateTime을 LocalDateTime으로 변환 (0) | 2022.09.03 |
IntelliJ IDEA에서 Maven 종속성 가져오기 (0) | 2022.09.03 |