DataTable - InCell编辑如何获取在Managed Bean中编辑的对象的值

use*_*029 1 jsf primefaces

我希望在我的托管bean中将行作为对象获取其更新的属性.我使用了PrimeFaces展示示例DataTable - InCell Editing.我不明白如何获取编辑的值来更新数据库.我怎样才能做到这一点?

Bal*_*usC 9

只需在同一表单中添加一个保存按钮即可.例如

<p:commandButton value="Save" action="#{bean.save}" />
Run Code Online (Sandbox Code Playgroud)

public void save() {
    someService.save(someList);
}
Run Code Online (Sandbox Code Playgroud)

或者,如果要对每个单独的行编辑事件执行保存,则将其添加<p:ajax event="rowEdit"><p:dataTable>.例如

<p:dataTable ...>
    ...
    <p:column>
        <p:rowEditor />  
    </p:column>  
    <p:ajax event="rowEdit" listener="#{bean.save}" />
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)

public void save(RowEditEvent event) {
    someService.save((SomeItem) event.getObject());
}
Run Code Online (Sandbox Code Playgroud)