[jsp] JSTL로 컬렉션 크기 확인

JSTL로 컬렉션의 크기를 어떻게 확인할 수 있습니까?

다음과 같은 것 :

<c:if test="${companies.size() > 0}">

</c:if>



답변

<c:if test="${companies.size() > 0}">

</c:if>

이 구문은 EL 2.2 이상 (Servlet 3.0 / JSP 2.2 이상)에서만 작동합니다. 당신이 JSPX 또는 Facelets의 대신 JSP를 사용하고 있기 때문에 당신이 XML 구문 분석 오류에 직면하는 경우, 다음 사용하는 gt대신 >.

<c:if test="${companies.size() gt 0}">

</c:if>

실제로 EL 구문 분석 오류가 발생하면 아마도 너무 오래된 EL 버전을 사용하고있을 것입니다. 그러면 JSTL fn:length()함수 가 필요합니다 . 에서 문서 :

length (java.lang.Object) -컬렉션의 항목 수 또는 문자열의 문자 수를 반환합니다.

fn네임 스페이스 를 허용하려면 이것을 JSP 페이지 맨 위에 놓으십시오 .

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

또는 JSPX 또는 Facelets를 사용하는 경우 :

<... xmlns:fn="http://java.sun.com/jsp/jstl/functions">

그리고 귀하의 페이지에서 다음과 같이 사용하십시오 :

<p>The length of the companies collection is: ${fn:length(companies)}</p>

컬렉션 길이로 테스트하려면 다음을 수행하십시오.

<c:if test="${fn:length(companies) gt 0}">

</c:if>

또는이 특정한 경우에는 간단하게 EL empty연산자 를 사용할 수도 있습니다 .

<c:if test="${not empty companies}">

</c:if>


답변

이전 의견에서 @Joel과 @Mark Chorley가 제안한 바와 같이 :

${empty companies}

null 및 빈 목록 / 컬렉션 / 배열을 확인합니다. 길이는 얻지 못하지만 OP의 예를 충족시킵니다. 그것으로 벗어날 수 있다면 태그 라이브러리와 같은 완고한 구문을 가져 오는 것보다 더 깨끗합니다 gt.


답변

이렇게 사용할 수 있습니다

${fn:length(numList)}


답변

${fn:length(companies) > 0}크기를 확인하는 데 사용 합니다. 부울을 반환합니다.


답변