문제

콩에서 나오는 물체에서 메소드를 호출 해야하는 JSP에서 작업하고 있습니다. 이전 버전의 페이지는 JSTL을 사용하지 않으며 올바르게 작동합니다. 내 새 버전에는 다음과 같은 설정이 있습니다.

<jsp:useBean id="pageBean" scope="request" type="com.epicentric.page.website.PageBean" />
<c:set var="pageDividers" value="<%= pageBean.getPageDividers() %>" />
<c:set var="numColumns" value="${pageDividers.size()}" />

변수 pageDividers a List 물체.

나는이 문제를 겪고있다 : 내가 요청할 때 pageDivider크기, 예외가 발생합니다. 나는 이것이 간단한 JTSL 오류라는 것을 알고있다. 내가 뭘 잘못하고 있습니까?

오류 메시지는 다음과 같습니다.

기본 네임 스페이스가 지정되지 않은 경우 기능 크기를 접두사와 함께 사용해야합니다.

내 방법에 올바르게 액세스하거나 호출하는 방법 pageDividers 물체?

도움이 되었습니까?

해결책

JSTL에서 속성 액세스를 위해 DOT 운영자를 사용하는 경우 ${pageDividers.size} (아니요 () 필요한)이 명명 된 메소드를 호출하는 결과 getSize().
java.util.list가 호출되는 메소드를 제공하기 때문에 size() (대신 getSize()) 해당 코드를 사용하여 목록 길이에 액세스 할 수 없습니다.


목록 크기에 액세스하기 위해 JSTL은 다음을 제공합니다. FN : 길이 같은 기능

${fn:length(pageDividers)}

사용하려면 주목하십시오 FN 네임 스페이스, 다음과 같이 선언해야합니다

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

또한 동일한 함수는 모든 수집 유형과 문자열과 함께 사용할 수 있습니다.

다른 팁

EL을 사용하여 Bean의 속성에 액세스하려면 속성을 지정하십시오 (방법을 호출하지 않음). 콩에 getsize ()라는 메소드가 있다고 가정 해 봅시다.

${pageDividers.size}

참조 번호 ().

편집 : 죄송합니다 ... 원래 게시물에서 오류가 발생했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top