Primefaces 5.1 sort不适用于绑定属性

时间:2015-03-26 04:41:26

标签: primefaces

我已将我的应用程序升级到primefaces 5.1,如果我使用带数据表的绑定属性,我的下面的代码开始抛出NPE。有没有人知道为什么在升级到新的primefaces版本后,如果点击排序图标对数据进行排序,我会得到Null指针异常。

xhtml代码

<h:body>
<h:form id="dataForm">   

<p:dataTable id="datatableId" value="#{bean.listToDisplay}" var="list" widgetVar="datatableVar" binding="#{bean.dataTable}">
<p:column id="titleColumn" filterBy="#{list.title}" sortBy="#{list.title}" headerText="Title" filterMatchMode="contains">
   #{list.title}
</p:column>
</p:dataTable>
</h:form>   
</h:body>
</html>

以下我得到的例外

SEVERE: java.lang.NullPointerException
at org.primefaces.component.datatable.DataTable.findColumn(DataTable.java:785)
at org.primefaces.component.datatable.feature.SortFeature.decode(SortFeature.java:85)
at org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:62)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:789)
at org.primefaces.component.api.UIData.processDecodes(UIData.java:246)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:534)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at org.primefaces.component.api.UIData.visitTree(UIData.java:692)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1663)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1663)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1663)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:383)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:257)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)

1 个答案:

答案 0 :(得分:0)

根据我自己在遇到同样问题后的实验,我发现将DataTable对象放在@RequestScoped托管bean中似乎可以解决问题。

这可以包括将托管bean更改为@RequestScoped,如果可能,如果不可能,请创建一个包含@RequestScoped的单独DataTable bean。