2012-01-12 48 views
0

我已將自定義驗證添加到我的頁面,並且此驗證從業務邏輯層調用,之後我單擊UI上的「保存」按鈕,即AjaxSubmitLinkApache檢票驗證

在我的頁面上,我有apache wicket DateTimeField,但它的驗證無法正常工作:錯誤消息未出現在頁面上的FeedbackPanel中,並且我的自定義驗證顯示在那裏。

因此,例如,我填寫時間字段「321」和我有錯誤控制檯:

WARN org.apache.wicket.protocol.http.WebSession - 留下 組件的針對性的反饋消息未渲​​染。這可能是 ,因爲您缺少頁面上的FeedbackPanel。消息: [FeedbackMessage消息= 「翻譯鍵[hours.RangeValidator] 未找到的語言[英文]!」,記者=小時,水平= ERROR]

也許有人有類似的問題,並有解決方案爲了這?

謝謝!

+0

看起來你有2個問題。您錯過了一個反饋面板,並且在資源文件中缺少一個鍵。你能顯示一些代碼嗎? – bert 2012-01-12 22:34:41

回答

6

因爲您做了Ajax請求,所以您必須將反饋面板添加到AjaxRequestTarget(因此它會根據每個請求更新自身)。

你必須雖然覆蓋onError方法:

add(new AjaxSubmitLink() { 
    @Override 
     protected void onError(final AjaxRequestTarget target, final Form form) { 
     target.addComponent(yourFeedbackPanel); 
    } 
} 
+0

謝謝,它的工作原理! – psisoyev 2012-01-13 11:29:22