我无法让 PrimeFaces dataTable 组件的排序行为按文档工作。(我正在使用 PrimFaces 4.0、JSF 2.1.12 和 Tomcat 7.0。)据我所知,我看到的问题与与 PF dataTable 相关的任何其他问题报告/讨论都不对应。为了探索这个问题,我创建了一个基于 ShowCase 示例的示例,该示例使用排序的 dataTable,复制了 tableBean 支持 bean 的 ShowCase 源代码(包括示例的本地汽车数据的生成;不涉及外部数据库访问)和配套的 Car 类。xhtml 也是 ShowCase 示例的非常接近的副本:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h:form>
<p:dataTable id="dataTable" var="car" value="#{tableBean.carsSmall}">
<f:facet name="header">
Ajax Sorting
</f:facet>
<p:column id="modelHeader" sortBy="#{car.model}">
<f:facet name="header">
<h:outputText value="Model" />
</f:facet>
<h:outputText value="#{car.model}" />
</p:column>
<p:column sortBy="#{car.year}">
<f:facet name="header">
<h:outputText value="Year" />
</f:facet>
<h:outputText value="#{car.year}" />
</p:column>
<p:column …Run Code Online (Sandbox Code Playgroud)