这是由 seam-gen (2.2.0) 生成的原始代码
<h:column>
<f:facet name="header">
<ui:include src="/layout/sort.xhtml">
<ui:param name="entityList" value="#{userList}"/>
<ui:param name="propertyLabel" value="Name"/>
<ui:param name="propertyPath" value="user.name"/>
</ui:include>
</f:facet>
<h:outputText value="#{_user.name}"/>
</h:column>
我们喜欢排序功能,因此我们包含了 rich:column sortBy,但是排序不正确(在分页页面上它失去了排序功能,因为排序参数没有在页面导航上发送),如果我们不使用/f:facet 中的 layout/sort.xhtml。
<rich:column sortBy="#{_user.name}">
<f:facet name="header">Name</f:facet>
<h:outputText value="#{_user.name}"/>
</rich:column>
我们如何获得与之前使用 rich:column sortBy 相同的功能
最佳答案
对您来说,sortBy
与 seam-gen 为您生成排序的方式相同,您需要生成完整的列表,而不是像 seam 的 Entity Framework 那样生成列表的一部分。
即:
List allResults = entityManager.createQuery("From X").getResultList();
现在,如果您只是为了测试而尝试在您的 sortBy 中使用此列表,您会发现它会像您一样工作,除了。然而,缺点是这将加载所有结果并放入内存。这可能不是您想要的。
但是,您应该将其与某些搜索结果一起使用,因此它已经根据某些用户输入进行了过滤。
关于java - 丰富的 :column sortBy doesn't sort properly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206792/