java - 丰富的 :column sortBy doesn't sort properly

标签 java jsf seam richfaces

这是由 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/

相关文章:

java - 在 Java 32 位和 Java 64 位之间切换

eclipse - 使用 Maven 的 Eclipse 中的 JSF 项目为 FacesServlet 提供 ClassNotFoundException

jsf - 使用a4j :repeat or ui:repeat inside rich:dataTable doesn't render radio buttons properly

java - 使用 Seam、RichFaces 和 PopupPanel 传递参数

java - 如何像spring mvc一样设置动态变量并将其传递给JSF?

java - 报告生成器——我需要一些智能设计模式;)

java - 坚持逆波兰符号

java - 从 JVM 调用 CLR 代码

java - 长度的连续子序列

java - 应用程序中未引用的 JS 文件