Session Primefaces数据表将数据传递给支持bean

Session Primefaces数据表将数据传递给支持bean,session,primefaces,datatable,Session,Primefaces,Datatable,我们使用的是primefaces 5。有一个datatable,它有一个输出文本列和一个文本字段。我们希望将数据从datatable传递到支持bean。如果bean的作用域是request,那么datatable的值不会传递给支持bean。如果bean的作用域是session,那么datatable的值将传递给支持bean。但是,如果我们将bean的作用域保留为会话,那么当我们返回到同一页面时,表单上的值将被保留 下面是我们的代码 <h:form id="createForm" p

我们使用的是primefaces 5。有一个datatable,它有一个输出文本列和一个文本字段。我们希望将数据从datatable传递到支持bean。如果bean的作用域是request,那么datatable的值不会传递给支持bean。如果bean的作用域是session,那么datatable的值将传递给支持bean。但是,如果我们将bean的作用域保留为会话,那么当我们返回到同一页面时,表单上的值将被保留

下面是我们的代码

    <h:form id="createForm" prependId="false">
    <p:messages id="errorMsgs"></p:messages>
    <p:panelGrid columns="1">
    <p:accordionPanel style="align:top;margin" prependId="false">
    <p:tab title="MainTab">
    <p:panelGrid columns="4" cellpadding="5">                                           
    <p:outputLabel for="id" value="Expense Items List: "/>
    <p:selectOneMenu id="id" style="width:250px" value="#{managedBean.expenseDetails.id}" required="true" requiredMessage="ExpenseDetails are required" filter="true" filterMatchMode="startsWith" >
    <p:ajax event="change" process="@this" listener="#{managedBean.getTEIList}" update="aTEModelList"/>
    <f:selectItem itemLabel="Select" itemValue="" noSelectionOption="true" />
    <f:selectItems value="#{managedBean.expenseDetailsModelList}" var="expenseDetails" itemLabel="#{expenseDetails.loadexpenseDetailsList}" itemValue="#{expenseDetails.id}" />
    </p:selectOneMenu>      
    <p:dataTable id="aTEModelList" var="aTEModelList" 
    value="#{managedBean.aTEModelList}" rowKey="#{expenseDetailsSearchResult.id}" >
    <p:column width="20%" >
    <f:facet name="header">
    <h:outputText value="Expense Short Description" />
    </f:facet>
    <h:outputText id="expenseShortDesc" value="#{aTEModelList.expenseShortDescription}" />
    </p:column>
    <p:column width="20%" >
    <f:facet name="header">
    <h:outputText value="Actual Expense Value" />
    </f:facet>
    <h:inputText id="actualexpenseDetailsExpense" value="#{aTEModelList.actualExpense}" />
    </p:column>
    </p:dataTable>
    </p:panelGrid>
    </p:tab>
    </p:accordionPanel>
    </p:panelGrid>
    <f:facet name="footer">
    <p:panelGrid columns="5">
    <p:commandButton id="submitButton" action="#{managedBean.addExpenseDetails}" value="Submit" ajax="false"  onclick="return validateForm();"></p:commandButton>
    </p:panelGrid>
    </f:facet>
    </h:form>