2

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

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

有没有办法解决这个问题?我从 Primefaces 扩展中看到了一个 pe:resetInput 组件,但是这个组件需要一个 UICommand 组件才能工作。如果用户选择主表的另一个条目,我需要一个有效的解决方案。

4

1 回答 1

2

您可以为此ResetInputAjaxActionListener使用OmniFaces。除了注册为 a 外<f:actionListener>,还可以全局注册为 a PhaseListener

也可以看看:


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

  • 在调用动作阶段,获取UIInputajax 请求未执行/处理的待渲染组件。
  • 在它们上调用resetValue()方法。

也可以看看:

于 2012-07-16T20:09:09.937 回答