programing

동일한 문자열에 대한 JSTL if 태그

nasanasas 2020. 9. 18. 08: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

반응형