validation - JSF2 BeanValidation 失败后重置值

标签 validation user-interface jsf-2 primefaces bean-validation

我们的网络应用程序的模块在中间显示一个数据表,在右侧显示所选记录的详细信息。每次用户选择主表的记录时,我们都会更新详细信息页面并显示所选记录的详细信息。现在我们遇到了以下问题:

  1. 用户在主表中选择一条记录,数据将显示在详细信息区域中。
  2. 用户修改详细数据并点击保存。
  3. 发生验证(bean 验证)错误,用户将看到错误消息。
  4. 用户没有更正错误的输入,而是选择主表的另一条记录。
  5. 所有没有错误状态的字段都将使用新记录的数据进行更新。之前错误的字段显示的是旧数据。旧记录的数据将保留,直到用户刷新页面。

有什么办法可以解决这个问题吗?我在 Primefaces 扩展中看到了 pe:resetInput 组件,但该组件需要 UICommand 组件才能工作。我需要一个在用户选择主表的另一个条目时有效的解决方案。

最佳答案

您可以使用ResetInputAjaxActionListenerOmniFaces为了这。除了注册为<f:actionListener> ,也可以全局注册为 PhaseListener .

另请参阅:


如果您打算将其掌握在自己手中,那么您基本上需要自己编写代码,该代码基本上执行以下操作:

  • 在调用操作阶段,获取要渲染的 UIInput未由ajax请求执行/处理的组件。
  • 调用resetValue()方法。

另请参阅:

关于validation - JSF2 BeanValidation 失败后重置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11510758/

相关文章:

java - 自定义字体和 XML 布局 (Android)

python - wxpython:检测对话框是否已关闭

java - JSF 2 下载具有西里尔文名称的文件

java - 在 JSF 中放置应用程序设置的位置

java - Primefaces 5.0 数据滚动和分页

forms - 忽略不同 View 下的 Play Framework 表单错误

validation - 带有自定义结构的 Golang 验证器

javascript - 如何确保单选按钮已被选中

javascript - Express Validator 来验证日期时间

javascript - AngularJS:从列表中动态添加组件