2012-07-31 39 views
0

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

这是正在发生的事情:

如果我输入有效的值,则页面更新如预期
如果我输入无效值,当我点击小“保存”对勾没有任何反应 - 细胞仍然可编辑,不尝试数据库写入,不显示错误消息。

页面上有一个<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) 

所以它看起来像上下文正确更新。看起来我需要做些事情来触发它呈现的信息。

+0

在没有任何示例代码,这听起来很像一个Hibernate异常。 JSF将直接跳转到“渲染响应”细分,这就解释了为什么您没有收到操作并且没有更改页面导航。没有验证或转换错误也解释了您的消息标记缺少FacesMessage。设置一个断点,并通过... – 8bitjunkie 2012-07-31 22:09:44

+0

我启用日志记录,看到这个: 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 =测试Hibernate验证器错误消息] 因此,看起来上下文正在被正确更新。看起来我需要做些事情来触发它呈现的信息。 – Greg 2012-08-01 01:25:42

+0

我也认识到Primefaces incell编辑会在失败时吞下消息,这是非常烦人的,因为定义的更新组件只会在成功时更新。应该在primefaces追踪器中提出问题。它甚至像简单的'required'一样吞下消息。 – djmj 2012-08-01 03:07:10

回答

0

使用belowfollowing声明在JSF的文件,它应该工作:

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

kiranmayi 2014-10-21 09:16:27