Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSF:在Primefaces中提交数据后取消datatable行编辑_Jsf_Jsf 2_Primefaces_Datatable - Fatal编程技术网

JSF:在Primefaces中提交数据后取消datatable行编辑

JSF:在Primefaces中提交数据后取消datatable行编辑,jsf,jsf-2,primefaces,datatable,Jsf,Jsf 2,Primefaces,Datatable,我正在JSF2.1+PrimeFaces5.1中开发一个web应用程序。我有一个带有可编辑行的数据表。我捕获rowEdit事件,并调用一个DB过程来验证新数据,并在用户单击“检查”按钮时更新记录。但是有一个问题:不管验证成功还是失败,GUI中的datatable行都会更新。如果在DB过程中进行的验证失败,我希望将行数据中的更改反转为以前的状态。我该怎么做 #{msgs.users} #{user.id} #{user.description} ... @ManagedBean @视域 公共类

我正在JSF2.1+PrimeFaces5.1中开发一个web应用程序。我有一个带有可编辑行的数据表。我捕获
rowEdit
事件,并调用一个DB过程来验证新数据,并在用户单击“检查”按钮时更新记录。但是有一个问题:不管验证成功还是失败,GUI中的datatable行都会更新。如果在DB过程中进行的验证失败,我希望将行数据中的更改反转为以前的状态。我该怎么做


#{msgs.users}
#{user.id}
#{user.description}
...
@ManagedBean
@视域
公共类UsersBean实现了可序列化{
私人名单用户;
公共无效onRowEdit(RowEditEvent事件){
logger.entry();
DtoUser DtoUser=(DtoUser)event.getObject();
这个.updateUser(dtoUser);
logger.exit();
}
public void updateUser(DtoUser DtoUser){
试一试{
记录器输入(数据传输器);
DtoBoUsers DtoBoUsers=dtoUser.toDtoBoUsers();
DtoTypeGenericResponse genericResponse=usersService.updateUser(dtoBoUsers);
if(genericResponse.isError()){
//用户更新中出错
}否则{
//更新成功
}
记录器。退出(dtoUser);
}捕获(例外e){
logger.error(ExceptionUtils.getStackTrace(e.fillInStackTrace());
}
}
}

您在应用程序层进行验证,因此就JSF而言,没有错误,并且使用了新的值。因此,如果要保持编辑器打开,请创建一个自定义编辑器validator@Kukeltje我已经创建了自定义验证器,但仍然存在问题: