2013-04-21 46 views
0

我有一個包含文本字段的Wicket表單。Wicket textfield驗證器事件

我希望該文本字段至少有3個字符。

爲了做到這一點我加了StringValidator如下:

 newPersonName.add(StringValidator.minimumLength(3)); 

它的工作原理,因爲它應該,它甚至報告錯誤給我的FeedbackPanel組件。

問題是我想在驗證失敗時能夠做一些手動操作(某種日誌),所以我想要「捕捉」驗證失敗事件並在其中添加自己的函數。

我該怎麼做?

回答

2

您可以簡單歸類StringValidator並覆蓋decorate(Wicket 6)方法。 在您的例子,它看起來應該像下面這樣:

newPersonName.add(new StringValidator(3, null){ 
    protected ValidationError decorate(ValidationError error, IValidatable<String> validatable){ 
     ValidationError superError = super.decorate(error, validatable); 
     //log logic goes here 
     return superError; 
    } 
}); 
+0

似乎無法找到的「裝飾」的javadoc - 這哪裏是功能定位? – Chaiavi 2013-04-21 10:26:00

+0

如果你找不到這個方法,可能是因爲你正在使用Wicket 1.5,在這種情況下,你需要重寫'onValidate'或類似的。 – 2013-04-21 10:51:13