如何在JSF中使用rich:dataTable显示特定行

时间:2013-11-06 10:44:15

标签: jsf jsf-2

我有一个bean中的对象列表,我想将此列表显示到dataTable中。每行包含对象的数据。但是,我不想在我的dataTable中显示所有对象。

<rich:dataTable id="myTable" iterationStatusVar="iterator" style="width: 100%; height: 100%" value="#{myBean.myList}" var="myObject">
                <rich:column>
                    <f:facet name="header">
                        <h:outputLabel value="#{bundle.name}"/>
                    </f:facet>
                    <h:outputLabel value="#{myObject.name}" rendered = "#{myObject.code == bundle.code}"/>
                </rich:column>
                <rich:column>
                    <f:facet name="header">
                        <h:outputLabel value="#{bundle.type}"/>
                    </f:facet>
                    <h:outputLabel value="#{myObject.type}" 
                        rendered = "#{myObject.code== bundle.code}"/>
                </rich:column>
            </rich:dataTable>

此代码仅显示具有myObject.code == bundle.code的对象。但是,我的数据表也会显示其他行(不通知列)。

请问你能帮帮我吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您的bean可以提供一个返回已过滤List的方法,该方法仅包含所需的对象。在dataTable中显示已过滤的列表。

如果您使用当前的EL版本3.0,则可以使用EL表达式来过滤列表。 #{myBean.myList.stream().filter(o->o.code == bundle.code)}"#