Jsf 装订<;p:数据表>;用表格划行

Jsf 装订<;p:数据表>;用表格划行,jsf,primefaces,Jsf,Primefaces,当我在中单击一行并单击命令按钮时,我想显示一个新对话框,并将该行的值设置为一个表单(在新对话框中)。我使用会话bean来保存所选行的数据,但当我选择新行时,数据不会更改。我认为这是因为会话bean在会话到期之前一直保存数据。我试过所有的示波器,但都没用 这是我的数据表 <p:dataTable var="customer" widgetVar="customerTable" value="#{customerFacade.findAll()}"

当我在
中单击一行并单击命令按钮时,我想显示一个新对话框,并将该行的值设置为一个表单(在新对话框中)。我使用会话bean来保存所选行的数据,但当我选择新行时,数据不会更改。我认为这是因为会话bean在会话到期之前一直保存数据。我试过所有的示波器,但都没用

这是我的数据表

<p:dataTable var="customer" 
        widgetVar="customerTable"
        value="#{customerFacade.findAll()}"
        selectionMode="single"
        rowKey="#{customer.customerid}"
        selection="#{editCustomerBean.customer}"
        paginator="true" rows="10"  
        paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
        rowsPerPageTemplate="5,10,15">  
    <p:ajax event="rowSelect" listener="#{editCustomerBean.onRowSelect}" update=":form:growl"/>

现在的问题是,您在onRowSelect中没有找到正确的客户,或者对话框中显示了错误的值?是的,我在表单中没有找到正确的客户。有什么问题吗?
<h:form>
    <p:dialog id="edit" header="Edit Customer" widgetVar="editCustomerDlg" resizable="false" showEffect="fade">  
        <h:panelGrid id="editDisplay" columns="2" columnClasses="alignTop">                           
            <p:outputLabel for="editCompanyName" value="Company Name" />
            <p:inputText id="editCompanyName"label="Compnay Name" value="#{editCustomerBean.customer.companyname}" required="true" />
            <h:panelGroup/>
            <p:commandButton value="Edit Customer" update="editDisplay" oncomplete="if (!args.validationFailed){editCustomerDlg.hide()}" actionListener="#{customerController.editCustomer}" />
        </h:panelGrid>  
    </p:dialog>
    <p:commandButton widgetVar="editBut" icon="ui-icon-tag" value="Edit"  oncomplete="editCustomerDlg.show()"/>  
</h:form>   
@Named(value = "editCustomerBean")
@SessionScoped
public class EditCustomerBean implements Serializable {
    private Customer customer;

    public Customer getCustomer() {
        return customer;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    public void onRowSelect(SelectEvent event) {  
        customer = (Customer) event.getObject();
        System.out.println(customer.getAddress());
        FacesMessage msg = new FacesMessage("Customer Selected", ((Customer) event.getObject()).getPhone());  
        FacesContext.getCurrentInstance().addMessage(null, msg);  
    }

    public EditCustomerBean() {
    }
}