2013-04-21 91 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