失败后JSF2 BeanValidation重置值

时间:2012-07-16 18:58:34

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

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

  1. 用户选择mastertable中的记录,数据显示在详细区域。
  2. 用户修改详细数据并点击保存。
  3. 发生验证(bean验证)错误,用户将看到错误消息。
  4. 用户不会更正错误的输入,而是选择另一个可记录的记录。
  5. 所有没有错误状态的字段都将使用新记录的数据进行更新。之前错误的字段显示旧数据。旧记录的数据一直保持到用户刷新页面为止。
  6. 有什么方法可以解决这个问题吗?我在Primefaces扩展中看到了一个pe:resetInput组件,但是这个组件需要一个UICommand组件才能工作。我需要一个解决方案,如果用户选择mastertable的另一个条目。

1 个答案:

答案 0 :(得分:2)

您可以使用ResetInputAjaxActionListener <f:actionListener>来实现此目的。除了注册为PhaseListener之外,它还可以全球注册为UIInput

另见:


如果您打算自己动手,那么您基本上需要自己编写代码,基本上可以执行以下操作:

  • 在调用操作阶段,获取未被ajax请求执行/处理的待渲染resetValue()组件。
  • 在其上调用{{1}}方法。

另见: