Wicket textfield验证器事件

时间:2013-04-21 09:29:25

标签: wicket feedbackpanel

我有一个包含文本字段的Wicket表单。

我希望该文本字段至少包含3个字符。

为了做到这一点,我添加了一个StringValidator,如下所示:

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

它可以正常工作,甚至可以向我的FeedbackPanel组件报告错误。

问题是我希望能够在验证失败时做一些手动(某种日志),所以我想“捕获”验证失败的事件并在那里添加我自己的功能。

我该怎么做?

1 个答案:

答案 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;
    }
});