【问题标题】:Primefaces 5.1 sort doesn't work with binding attributePrimefaces 5.1 排序不适用于绑定属性
【发布时间】:2015-03-26 04:41:26
【问题描述】:

我已将我的应用程序升级到 primefaces 5.1,如果我将绑定属性与数据表一起使用,我的以下代码开始抛出 NPE。有谁知道为什么在升级到新的 primefaces 版本后,如果单击排序图标对数据进行排序,我会收到空​​指针异常。

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)

【问题讨论】:

    标签: primefaces


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 2018-03-24
      • 2012-08-27
      • 2016-06-06
      • 2020-01-02
      • 1970-01-01
      相关资源
      最近更新 更多