문제

포틀릿과 JPS를 개발하는 데 사용되므로 딜레마가 있습니다.

작업 : 디스플레이 <h:dataTable> 목록이 비어 있지 않은 경우에만

제공 할 수 있습니까? <c:if> JSF 페이지에 대한 태그?

도움이 되었습니까?

해결책

예, JSF 페이지에서 JSTL 태그를 추가 할 수 있습니다. 그러나 귀하의 경우에는 다음을 수행 할 수 있습니다.

<h:dataTable value="#{myBean.list}"... rendered="#{myBean.displayTable}">
    ...
</h:dataTable>

다음 방법으로 myBean:

public boolean isDisplayTable() {
    return list != null && list.size() > 0;
}

당신은 또한 그것을 시도 할 수 있습니다 (그것이 작동하는지 확실하지 않음) :

<!-- Idea from Colin Gislason -->
<h:dataTable value="#{myBean.list}"... rendered="#{not empty myBean.list}">
    ...
</h:dataTable>

<h:dataTable value="#{myBean.list}"... rendered="#{not myBean.list.empty}">
    ...
</h:dataTable>

당신은 당신이 사용할 수 있습니다 ! 대신 not EL 표현식의 키워드 (안내서 참조 여기 El Expressions에 대해) rendered="#{!empty myBean.list}".

다른 팁

<c:if> (및 다른 JSTL 태그)는 대부분의 경우 JSF에서 사용할 수 있습니다. 그러나 컬렉션에서 반복하는 구성 요소 내부에서는 사용할 수 없습니다. <h:dataTable>. 그러나 당신의 경우, 당신은 원합니다 <c:if> 외부, 가능합니다. 그러나 Romaintaz가 지적했듯이 rendered 기인하다.

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