处理ui:重复返回空值

时间:2013-05-16 05:38:25

标签: jsf jsf-2 uirepeat

我有一个ui:repeat,它返回一个实体列表。有没有办法知道返回的列表是空的?

<ui:repeat id="resulta" value="#{testController.testList}" var="list"> 
   <div>list.name</div>
</ui:repeat>

如果ui:repeat为空,则显示一个div,表示“List is empty”

我听说过varStatus - &gt; Facelets repeat Tag Index

但我不认为有空列表的东西。或者在那里?

已更新

<ui:repeat id="resulta" value="#{testController.testList}" var="list"> 
   <div>list.name</div>
    <h:panelGroup rendered="#{empty list}">
        list is empty!
    </h:panelGroup>
</ui:repeat>

我试图渲染“列表是空的!”当列表为空但后面没有显示时。

2 个答案:

答案 0 :(得分:6)

<ui:repeat id="resulta" 
           value="#{testController.testList}" 
           var="list">
    <div>
        #{list.name}
    </div>

</ui:repeat>

<h:panelGroup rendered="#{empty testController.testList}">
    List is empty!
</h:panelGroup>

rendered是一个条件语句,只有当它为真时才会呈现。如果您想将最后h:panelGroup呈现为div而不是span,请考虑将layout='block'添加到元素中。

答案 1 :(得分:1)

您可以在<ui:repeat>元素之外显示空列表消息:

<ui:repeat id="resulta" 
       value="#{testController.testList}" 
       var="list" 
       rendered="#{not empty testController.testList}">
    <div>
        #{list.name}
    </div>
</ui:repeat>
<h:panelGroup rendered="#{empty testController.testList}">
    list is empty!
</h:panelGroup>