0

我想使用具有不同过滤器的相同数据表创建几个 xhtml 页面。

例如,会有一个 men.xhtml 和 women.xhtml 页面来自服务调用 getHumans;我希望在不输入的情况下自动应用过滤器,并且我不想创建额外的视图,因为在我看来很多东西都是徒劳的。

我试过这些代码没有成功

<p:column filterBy="human.gender" filteredValue="men"
                            headerText="Gender" style="width: 150px;">

                            <h:outputText value="#{human.gender}" />
                        </p:column>

我也尝试添加这个:

<p:dataTable id="gender" var="gender" filterValue="men" ...

但它没有用

知道我能做什么吗?

4

1 回答 1

0

filterValue如果启用过滤,您应该通过数据表的属性提供一个列表以保留过滤后的数据。您可以使用带有流的表达式语言( )限制从 xhtml 中的 bean 获得的列表:

<p:dataTable value="#{yourBean.humans.stream().filter(human -> human.getGender().equals('men')).toList()}" ...>

您需要 EL 3.0 或更高版本才能正常工作。

于 2018-09-29T18:21:18.637 回答