我有一个包含文本字段的Wicket表单。
我希望该文本字段至少包含3个字符。
为了做到这一点,我添加了一个StringValidator,如下所示:
newPersonName.add(StringValidator.minimumLength(3));
它可以正常工作,甚至可以向我的FeedbackPanel组件报告错误。
问题是我希望能够在验证失败时做一些手动(某种日志),所以我想“捕获”验证失败的事件并在那里添加我自己的功能。
我该怎么做?
答案 0 :(得分: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;
}
});