小编Bad*_*ous的帖子

在记录版本期间出现错误时避免数据表更新(JSF + Primefaces)

我有一个JSF 2.1 + Primefaces 5.1的网络应用程序.我有一个可选行的数据表.当我选择一行并按"编辑"按钮时,将打开一个对话框,允许用户编辑该记录的值.当用户按下对话框的"保存"按钮时,将调用一个过程来更新行并通过Ajax更新数据表.如果由于某些业务逻辑要求而导致过程失败,则数据表不应更新,它应保留该行的旧值.但是会发生的是,值会在客户端更新,尽管在数据库中它们保留旧的(和正确的)值.刷新后,数据表显示旧值.

数据表和编辑按钮:

<h:form id="search_users_form_id">  
        <p:commandButton id="edit_user_button_id" value="#{msgs.edit}" disabled="#{usersBean.editUserButtonDisabled}" onclick="openDialog('edit_user_dlg')" update=":edit_user_form_id" actionListener="#{usersBean.populateDataForUserEdition}"/>

        <p:dataTable id="users_table_id" var="user" value="#{usersBean.users}" rowKey="#{user.id}" paginator="true"
            paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
               rowsPerPageTemplate="5,10,15" selection="#{usersBean.selectedUser}" selectionMode="single" emptyMessage="#{msgs.no_records}" sortBy="#{user.id}" 
               sortOrder="ascending" rows="15">
            <f:facet name="header">
                #{msgs.users}               
            </f:facet>
            <p:ajax event="rowSelect" listener="#{usersBean.onRowSelect}" update=":search_users_form_id:edit_user_button_id"/>
            <p:ajax event="rowUnselect" listener="#{usersBean.onRowUnselect}" update=":search_users_form_id:edit_user_button_id"/>
            <p:column headerText="#{msgs.id}" sortBy="#{user.id}" styleClass="centered-column">
                #{user.id}
            </p:column>          
            <p:column headerText="#{msgs.description}" sortBy="#{user.description}" styleClass="centered-column">
                #{user.description}
            </p:column>          
            <p:column headerText="#{msgs.password}" sortBy="#{user.password}" styleClass="centered-column">
                #{user.password}
            </p:column>
            <p:column headerText="#{msgs.sending_system}" sortBy="#{user.playerIn.description}" styleClass="centered-column">
                #{user.playerIn.description}
            </p:column> 
            <p:column headerText="#{msgs.receiving_system}" sortBy="#{user.playerOut.description}" styleClass="centered-column">
                #{user.playerOut.description}
            </p:column>                                     
            <p:column headerText="#{msgs.active}" sortBy="#{user.active}" …
Run Code Online (Sandbox Code Playgroud)

datatable jsf primefaces jsf-2

3
推荐指数
1
解决办法
822
查看次数

标签 统计

datatable ×1

jsf ×1

jsf-2 ×1

primefaces ×1