【问题标题】:Primefaces editable dataTable and hibernate validatorPrimefaces 可编辑数据表和休眠验证器
【发布时间】:2012-07-31 22:05:13
【问题描述】:

我在 PrimeFaces 中有一个可编辑的数据表,并且正在使用 Hibernate Validator 进行 bean 验证。这适用于 <p:inputText /> 元素。现在我想对可编辑的数据表进行验证。

这是正在发生的事情:

如果我输入有效值,页面会按预期更新
如果我输入无效值,当我点击小“保存”复选标记时没有任何反应 - 单元格保持可编辑状态,不尝试数据库写入,不显示错误消息。

页面上有<h:messages />标签,为什么不显示错误信息?该组件似乎意识到存在问题,因为该行仍处于可编辑状态。

编辑:我启用了日志记录并看到了这个:

21:20:43,874 FINE  [javax.enterprise.resource.webcontainer.jsf.context] (http-localhost-127.0.0.1-8080-2) Adding Message[sourceId=demoTable:j_idt11:2:j_idt15,summary=Testing Hibernate Validator Error Message)

所以看起来上下文正在正确更新。看来我需要做点什么来触发它呈现的消息。

【问题讨论】:

  • 在没有任何示例代码的情况下,这听起来很像 Hibernate Exception。 JSF 将直接跳到渲染响应部分,这解释了为什么您没有得到任何操作并且页面导航没有变化。 No Validation or Conversion 错误也解释了您的消息标签缺少 FacesMessage。设置断点并遍历它...
  • 我启用了日志记录并看到了这个:21:20:43,874 FINE [javax.enterprise.resource.webcontainer.jsf.context] (http-localhost-127.0.0.1-8080-2) 添加消息[ sourceId=demoTable:j_idt11:2:j_idt15,summary=Testing Hibernate Validator Error Message) 所以看起来上下文正在正确更新。看来我需要做点什么来触发它呈现的消息。
  • 我还认识到 Primefaces 的单元格编辑会在失败时吞下消息,这非常烦人,因为定义的更新组件仅在成功时更新。应在 primefaces 跟踪器中提交问题。它甚至会吞下诸如简单的required 之类的消息。

标签: jsf primefaces bean-validation hibernate-validator


【解决方案1】:

在您的 jsf 文件中使用以下语句,它应该可以工作:

<p:messages id="messages" showDetail="true" autoUpdate="true"
            closable="true" showSummary="false"/>

【讨论】:

猜你喜欢
  • 2012-11-09
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多