我正在过滤我的dataTable,并希望使用自定义函数对其进行过滤。问题是,我想将两列数据表作为输入。实现filterFunction的默认签名为public boolean filter(Object value, Object filter, Locale locale),在value参数中,它包含"filterBy"属性传递的内容的内容。是什么让它变得更加棘手-我用来过滤的字段不是关键-它可以具有相同的值。是否可以将多个值传递给"filterBy"或以某种方式获得支持bean的filter函数中的整个dataTable行?

最佳答案

我找到了一种解决方法:传递给"filterBy"属性的任何内容都在EL(表达式语言)中,因此我可以这样编写过滤器:

在xhtml中:
... filterBy="#{item.property1};#{item.property2}" ...

并在过滤器功能中:

public boolean filter(Object value, Object filter, Locale locale){
...
String[] properties = value.toString().split(";");
...

09-11 19:47