2012-07-31 36 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