Primefaces数据表未编辑

Primefaces数据表未编辑,primefaces,datatable,Primefaces,Datatable,我正在尝试创建可编辑的primefaces数据表。我正在使用。所有数据库表数据都会显示,但当我试图编辑表中的数据时,出现以下错误: /index.xhtml@23,90 listener=“#{tableBean.onEdit}”:目标不可访问,标识符“tableBean”解析为null:javax.el.PropertyNotFoundException:/index.xhtml@23,90 listener=“#{tableBean.onEdit}”:目标不可访问,标识符“tableBean

我正在尝试创建可编辑的primefaces数据表。我正在使用。所有数据库表数据都会显示,但当我试图编辑表中的数据时,出现以下错误:

/index.xhtml@23,90 listener=“#{tableBean.onEdit}”:目标不可访问,标识符“tableBean”解析为null:javax.el.PropertyNotFoundException:/index.xhtml@23,90 listener=“#{tableBean.onEdit}”:目标不可访问,标识符“tableBean”解析为null

index.xhtml

<h:head>
    <title>index.xhtml</title>
</h:head>

<h:body>

    <h:form id="form">  

<p:growl id="messages" showDetail="true"/>  

<p:dataTable var="u" value="#{logonTest.userList}" id="carList" editable="true">  

    <f:facet name="header">  
        In-Cell Editing  
    </f:facet>  

    <p:ajax event="rowEdit" listener="#{tableBean.onEdit}" update=":form:messages" />  
    <p:ajax event="rowEditCancel" listener="#{tableBean.onCancel}" update=":form:messages" />  

    <p:column headerText="Name" style="width:30%">  
        <p:cellEditor>  
            <f:facet name="output">  
                <h:outputText value="#{u.name}" />  
            </f:facet>  
            <f:facet name="input">  
                <p:inputText value="#{u.name}" style="width:100%"/>  
            </f:facet>  
        </p:cellEditor>  
    </p:column>  

    <p:column headerText="Surname" style="width:20%">  
        <p:cellEditor>  
            <f:facet name="output">  
                <h:outputText value="#{u.surname}" />  
            </f:facet>  
            <f:facet name="input">  
                <p:inputText value="#{u.surname}" style="width:100%" />  
            </f:facet>  
        </p:cellEditor>  
    </p:column>  

托管bean
tableBean
尚未实例化,这意味着找不到任何属性/方法。显示这个bean的头。按照Omar所说的,检查@ViewScope是否有正确的注释(假设您想要查看,更重要的是@ManagedBean)
   public void onEdit(RowEditEvent event) {  
        FacesMessage msg = new FacesMessage(" Edited", ((User) event.getObject()).getName());  

        FacesContext.getCurrentInstance().addMessage(null, msg);  
    }  

    public void onCancel(RowEditEvent event) {  
        FacesMessage msg = new FacesMessage(" Cancelled", ((User) event.getObject()).getName());  

        FacesContext.getCurrentInstance().addMessage(null, msg);  
    }