JSF中的Filter datatable:null指针异常-参数问题

JSF中的Filter datatable:null指针异常-参数问题,jsf,primefaces,datatable,Jsf,Primefaces,Datatable,我正在实现一个primefaces数据表,每个列都有一个过滤器 表中显示的数据来自一个查询,该查询使用用户通过SelectCheckBox菜单传递的一些参数 我可以显示数据,但是当我尝试应用过滤器时,我得到了一个空指针异常 以下是数据表代码: <p:dataTable id ="rows" rows="15" value="#{poc_InputManager.stockFiltered}" var="s" tableStyle="width:auto" >

我正在实现一个primefaces数据表,每个列都有一个过滤器

表中显示的数据来自一个查询,该查询使用用户通过SelectCheckBox菜单传递的一些参数

我可以显示数据,但是当我尝试应用过滤器时,我得到了一个空指针异常

以下是数据表代码:

      <p:dataTable id ="rows"  rows="15"   value="#{poc_InputManager.stockFiltered}" var="s" tableStyle="width:auto"  >                           
             <p:column filterBy="#{s.locationcode}" headerText="LocationCode"> 
             <h:outputText value="#{s.locationcode}"/>
             </p:column>                                  
             <p:column filterBy="#{s.itemcode}" headerText="itemCode"> 
             <h:outputText value="#{s.itemcode}"/>
             </p:column>               
             <p:column filterBy="#{s.stock}" headerText="Stock"> 
             <h:outputText value="#{s.stock}"/>
             </p:column>                                             
        </p:dataTable>     
参数通过以下方式传递:

    <p:commandButton  style="margin-left:10px;" value="Submit"  ajax="false" action="#{navigator.filterData}">

        <f:setPropertyActionListener target="#{navigator.selectedsta}" value="#{checkboxMenu.selectedSTAs}" />
        <f:setPropertyActionListener target="#{navigator.allsta}" value="#{checkboxMenu.stas}" />
        <f:setPropertyActionListener target="#{poc_InputManager.selectedsta}" value="#{checkboxMenu.selectedSTAs}" />
        <f:setPropertyActionListener target="#{poc_InputManager.selecteditem}" value="#{checkboxMenu.selectedItem}" />
    </p:commandButton>  
我知道错误是由于在我尝试筛选数据表时查询无法访问参数造成的

因此,我想知道应该如何将参数传递给查询。
我已经照看过filterEvent,但我不知道如何使用它。

它是@ViewScope吗?我不确定这是你的问题的原因,但可能是。我从来没有在datatable上使用过过滤器,所以我不知道。创建一个mcve…完全不清楚是如何工作的?所有的工作原理以及“fil”集合来自何处从问题中删除Hibernate依赖项。做这件事是没有责任的。而是显示如何在相应的支持bean中初始化集合(
fil
)。似乎您需要
filteredValue=“#{bean.fil}”
属性,该属性对应于支持bean中适当集合类型的属性。最好使用LazyDataModel…这样可以更好地控制注释的内容。问题实际上是bean上的ViewScope。它是@ViewScope吗?我不确定这是你的问题的原因,但可能是。我从来没有在datatable上使用过过滤器,所以我不知道。创建一个mcve…完全不清楚是如何工作的?所有的工作原理以及“fil”集合来自何处从问题中删除Hibernate依赖项。做这件事是没有责任的。而是显示如何在相应的支持bean中初始化集合(
fil
)。似乎您需要
filteredValue=“#{bean.fil}”
属性,该属性对应于支持bean中适当集合类型的属性。最好使用LazyDataModel…这样可以更好地控制注释的内容。问题实际上是bean上的viewscope。
    <p:commandButton  style="margin-left:10px;" value="Submit"  ajax="false" action="#{navigator.filterData}">

        <f:setPropertyActionListener target="#{navigator.selectedsta}" value="#{checkboxMenu.selectedSTAs}" />
        <f:setPropertyActionListener target="#{navigator.allsta}" value="#{checkboxMenu.stas}" />
        <f:setPropertyActionListener target="#{poc_InputManager.selectedsta}" value="#{checkboxMenu.selectedSTAs}" />
        <f:setPropertyActionListener target="#{poc_InputManager.selecteditem}" value="#{checkboxMenu.selectedItem}" />
    </p:commandButton>  
org.hibernate.QueryException: Collection must be not null!
at    org.hibernate.internal.AbstractQueryImpl.setParameterList(AbstractQueryImpl.java:871)
at dao.POC_HealthyStockDAO.getAllStocksFiltered(POC_HealthyStockDAO.java:27)
at bean.poc_InputManager.getStockFiltered(poc_InputManager.java:55)