itsource

JSTL if 동일한 문자열 태그

mycopycode 2022. 9. 3. 14:15
반응형

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

반응형