在jsf dataTable中跳过一些行

Mar*_*arc 1 jsf components seam

如何使用dataTable跳过要显示的行:

<h:dataTable cellspacing="0" id="dogs" value="#{dogBean.dogs}" var="dog" rendered="#{dogBeans.dogs != null}">

<h:column id="nameColumn">

    <h:outputText value="#{dog.name}"/>
</h:column>

<h:column id="breedColumn">

    <h:outputText value="#{dog.breed}"/>
</h:column>
Run Code Online (Sandbox Code Playgroud)

</h:dataTable>

我想要显示所有的狗,但是那些年龄大于10的狗.dog.age> 10.

我正在使用Seam.

Bal*_*usC 5

你不能在视图方面做得很好.您最多可以设置rendered每个单元格内容的属性false,但这不会避免<tr>呈现的元素.你会看到一个空行,它的外观在浏览器中可能不一致.

最好是事先在(post)构造,动作(监听器)中过滤行,或者在getter中懒惰地过滤行.

List<Dog> dogsOlderThan10 = new ArrayList<Dog>();
for (Dog dog : dogs) {
    if (dog.getAge() > 10) dogsOlderThan10.add(dog);
}
Run Code Online (Sandbox Code Playgroud)

或者,只需发送一个新的SQL查询,即可准确返回所需的数据.