p:datatable中的行编辑不向bean发送新值

时间:2013-10-01 19:36:01

标签: jsf jsf-2 primefaces

我正在尝试使用主要面孔的功能,允许用户编辑表格中的行数据。我已按照此链接实现它:

http://www.primefaces.org/showcase/ui/datatableRowEditing.jsf

当我说编辑用户时,输入的新值不会发送到bean。它仍然只显示旧值。

我在JSF中的代码:

             <p:dataTable value="#{mybean.userList}"
                             var="item"
                             id="dataTab"
                             widgetVar="usersTable"
                             tableStyleClass="data"  paginator="true" rows="5"  
                             filteredValue="#{userController.filteredUsers}"
                             editable="true"
                             rowKey="#{item}"
                             >
                    <p:ajax event="rowEdit"   listener="#{mybean.onEdit}" update=":userForm:growl" />  
                    <p:ajax event="rowEditCancel" listener="#{mybean.onCancel}" update=":userForm:growl" /> 
                    <f:facet name="header">
                    <p:outputPanel>  
                         <h:outputText value="Search all fields:" />  
                         <p:inputText id="globalFilter"     onkeyup="('usersTable').filter()"   style="width:150px" />  
                    </p:outputPanel>     
                    </f:facet>


                    <p:column sortBy="#{item.firstName}" filterBy="#{item.firstName}" 
                              filterMatchMode="startsWith">
                         <p:cellEditor> 
                        <f:facet name="header">  
                        <h:outputText value="First Name" />  
                        </f:facet>
                             <f:facet name="output">
                        <h:outputText  value="#{item.firstName}" />
                             </f:facet>
                             <f:facet name="input">  
            <p:inputText value="#{item.firstName}" style="width:100%"/>  
        </f:facet>  
                          </p:cellEditor>
                    </p:column>
                    <p:column  sortBy="#{item.lastName}" filterBy="#{item.lastName}" filterMatchMode="startsWith">
                        <p:cellEditor> 
                        <f:facet name="header">  
                        <h:outputText value="Last Name" />  
                        </f:facet>

                    <p:column headerText="Update" style="width:6%">  
                     <p:rowEditor />  
                    </p:column>    




                                        </p:dataTable>

我在bean中的方法:

public String onEdit(RowEditEvent event)
    {
User user=(User)event.getObject());
      user.getFirstName();
}

当我说我得到用户名字的旧值而不是新值时。所以你能让我知道我在这里缺少什么。

感谢。

0 个答案:

没有答案