JSF-使用Primefaces RowEditEvent时如何获取新旧值?

鲶鱼

我有一个包含2列(名称和描述)的数据表,当有人更新一行并单击触发该execBacking.update方法的选中标记时,我想更新数据库

在这种方法中,我可以通过强制转换获得新值event.getObject(),但是我又如何才能获得旧值呢?名称是我的主键,因此我需要旧值来知道要更新数据库中的哪一行。

xhtml页面

  <p:ajax event="rowEdit" listener="#{execBacking.update}" update=":execForm:execMessages" /> 

  <p:column headerText="Name">
    <p:cellEditor>
        <f:facet name="output">
            <h:outputText value="#{exec.name}" />
        </f:facet>
        <f:facet name="input">
            <h:inputText value="#{exec.name}" />
        </f:facet>
    </p:cellEditor>
  </p:column>

  <p:column headerText="Description">
    <p:cellEditor>
        <f:facet name="output">
            <h:outputText value="#{exec.description}" />
        </f:facet>
        <f:facet name="input">
            <h:inputText value="#{exec.description}" />
        </f:facet>
    </p:cellEditor>
  </p:column>

  <p:column headerText="Actions">
    <p:rowEditor />
    <p:commandLink styleClass="ui-icon ui-icon-trash" type="submit" actionListener="#{execBacking.delete}" update=":execForm:execMessages" >
            <f:attribute name="execName" value="#{exec.name}" />
        </p:commandLink>
  </p:column>
</p:dataTable>

支持豆

public void update(RowEditEvent event) {

        Dao dao = new Dao(ds);
        Exec exec = (Exec) event.getObject();
        System.out.println("name = "+exec.getName());  //New name
        System.out.println("desc = "+exec.getDescription());  //New desc
        try {
            // If the new exec was updated successfully
            if(dao.updateExec(accessBacking.getUsername(), null, exec.getName(), exec.getDescription())) {
                FacesContext.getCurrentInstance().addMessage("growl", new FacesMessage(FacesMessage.SEVERITY_INFO, "Success", "Exec Updated Successfully!"));
            } else {
                FacesContext.getCurrentInstance().addMessage("messages", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", "Error Updating Exec!"));
            }
        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage("messages", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", e.getMessage()));
        }
    }
斯托姆·霍克

我建议具有name作为您的主键,而是添加一个自动递增id场,让你的主键,并且使用户该字段编辑。这样可以确保您始终可以访问要更新的记录。

一般来说,尝试以您尝试的方式修改数据库中的主键是一种不好的做法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 JSF 和 Primefaces 下载文件时出错

来自分类Dev

如何使用JSF / OmniFaces / PrimeFaces嵌入SVG图像?

来自分类Dev

提交时的jsf primefaces fileupload

来自分类Dev

如何停用JSF标记(Primefaces)

来自分类Dev

布尔值的JSF或PrimeFaces组件/如何通过p:triStateCheckbox使用布尔值

来自分类Dev

使用JSF PrimeFaces的文本编辑器,如何使用iText在PDF中添加文本

来自分类Dev

primefaces JSF p:selectOneMenu提交空值

来自分类Dev

滚动时在JSF中修复了PanelGrid(primefaces)

来自分类Dev

如何在JSF上延迟Primefaces AjaxStatus?

来自分类Dev

如何在primefaces jsf中连接旋钮

来自分类Dev

使用JSF PrimeFaces时,类型java.lang.String上的属性不可读

来自分类Dev

如何在JSF页面中禁用ctrl + v(粘贴)功能?我正在使用primefaces组件。

来自分类Dev

如何使用CSS将列的内容设置为不在JSF,primefaces中居中?

来自分类Dev

如何使用JSF 2.0的复合组件将子TabMenu嵌套在Primefaces TabMenu中

来自分类Dev

如何使用primefaces更新或jsf渲染刷新自定义组件?

来自分类Dev

graphicImage不使用jsf和primefaces收费

来自分类Dev

如何使用JSF panelGrid

来自分类Dev

可以在jsf中使用[]获取hashMap的值?

来自分类Dev

PrimeFaces:必需的JSF版本

来自分类Dev

JSF PrimeFaces后退按钮

来自分类Dev

JSF PrimeFaces渲染组件

来自分类Dev

使用JSF @ManagedProperty(...)时出错?

来自分类Dev

如何验证以及是否成功使用带有Primefaces 3.5的JSF 2.0打开新选项卡?

来自分类Dev

如何验证以及是否成功使用带有Primefaces 3.5的JSF 2.0打开新选项卡?

来自分类Dev

在JSF / Primefaces中的f:selectItems中过滤值

来自分类Dev

selectOneMenu不选择默认值-JSF + Primefaces + Omnifaces

来自分类Dev

具有多个命令按钮的JSF Primefaces必需值问题

来自分类Dev

如何编写Primefaces / JSF应用程序的单元测试

来自分类Dev

如何验证Primefaces数据表中的List <Object>-JSF

Related 相关文章

  1. 1

    使用 JSF 和 Primefaces 下载文件时出错

  2. 2

    如何使用JSF / OmniFaces / PrimeFaces嵌入SVG图像?

  3. 3

    提交时的jsf primefaces fileupload

  4. 4

    如何停用JSF标记(Primefaces)

  5. 5

    布尔值的JSF或PrimeFaces组件/如何通过p:triStateCheckbox使用布尔值

  6. 6

    使用JSF PrimeFaces的文本编辑器,如何使用iText在PDF中添加文本

  7. 7

    primefaces JSF p:selectOneMenu提交空值

  8. 8

    滚动时在JSF中修复了PanelGrid(primefaces)

  9. 9

    如何在JSF上延迟Primefaces AjaxStatus?

  10. 10

    如何在primefaces jsf中连接旋钮

  11. 11

    使用JSF PrimeFaces时,类型java.lang.String上的属性不可读

  12. 12

    如何在JSF页面中禁用ctrl + v(粘贴)功能?我正在使用primefaces组件。

  13. 13

    如何使用CSS将列的内容设置为不在JSF,primefaces中居中?

  14. 14

    如何使用JSF 2.0的复合组件将子TabMenu嵌套在Primefaces TabMenu中

  15. 15

    如何使用primefaces更新或jsf渲染刷新自定义组件?

  16. 16

    graphicImage不使用jsf和primefaces收费

  17. 17

    如何使用JSF panelGrid

  18. 18

    可以在jsf中使用[]获取hashMap的值?

  19. 19

    PrimeFaces:必需的JSF版本

  20. 20

    JSF PrimeFaces后退按钮

  21. 21

    JSF PrimeFaces渲染组件

  22. 22

    使用JSF @ManagedProperty(...)时出错?

  23. 23

    如何验证以及是否成功使用带有Primefaces 3.5的JSF 2.0打开新选项卡?

  24. 24

    如何验证以及是否成功使用带有Primefaces 3.5的JSF 2.0打开新选项卡?

  25. 25

    在JSF / Primefaces中的f:selectItems中过滤值

  26. 26

    selectOneMenu不选择默认值-JSF + Primefaces + Omnifaces

  27. 27

    具有多个命令按钮的JSF Primefaces必需值问题

  28. 28

    如何编写Primefaces / JSF应用程序的单元测试

  29. 29

    如何验证Primefaces数据表中的List <Object>-JSF

热门标签

归档