JSF 素数面过滤分页范围



我正在过滤我的列并使用分页,所以我使我的后备 Bean 会话限定范围,我也使它成为会话范围,因为我正在从 db n 加载数据不希望它重新加载。 我正在使用查看按钮选择一列并转发到新页面以显示更多信息,并在那里使用后退按钮返回主页。

现在我的问题是,当我过滤数据并点击查看按钮时,它向我显示数据,但是当我点击后退按钮 n 时,它返回到主页,数据仍然被过滤,我知道这种情况正在发生,因为我使用了会话范围 n 过滤是持久的。这样做的问题是,即使认为数据被过滤,它也不会在过滤的过滤单元格中显示值。要删除过滤,我必须在过滤单元格中输入一个值并将其删除以取回所有数据。我觉得也许我有一个设计缺陷,但无法弄清楚如何解决它。

代码片段

主页

 <p:dataTable var="curridea" value="#{userIdea.ideas}"   filteredValue="#{userIdea.filteredideas}"
    paginator="true" rows="10"  
                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                 rowsPerPageTemplate="5,10,15">

        <p:column headerText="Employee Name"  filterBy="empname"   
                filterMatchMode="contains">  
            <h:outputText value="#{curridea.empname}" />  
        </p:column> 
 <p:column headerText="View">  
            <h:commandButton value="view" action="#{userIdea.actionController}"  >
            <f:setPropertyActionListener value="#{curridea}" target="#{userIdea.selectedidea}" />  
            </h:commandButton> 
        </p:column>  

查看页面

<h1 class="title">Your idea Here</h1>
<h:form>
<h:outputText value="#{userIdea.selectedidea.idea}" escape="false" />
<h:commandButton value="back" action="#{userIdea.returnController}"  >

            </h:commandButton> 

用户理念

private ArrayList<Idea> filteredideas;
    public ArrayList<Idea> getFilteredideas() {
        return filteredideas;
    }
    public void setFilteredideas(ArrayList<Idea> filteredideas) {
        this.filteredideas = filteredideas;
    }

更新:我通过将"查看页面后退"按钮中的过滤想法设置为空来解决它,但请让我知道是否有我没有看到的更好的解决方案

<h:commandButton value="back" action="#{userIdea.returnController}"  >
             <f:setPropertyActionListener value="" target="#{userIdea.filteredideas}" />   
            </h:commandButton> 

我通过将"查看页面后退"按钮中的过滤想法设置为空来解决它,但请让我知道是否有我没有看到的更好的解决方案

<h:commandButton value="back" action="#{userIdea.returnController}"  >
             <f:setPropertyActionListener value="" target="#{userIdea.filteredideas}" />   
            </h:commandButton> 

最新更新