0

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

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

为此,我添加了一个 StringValidator,如下所示:

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

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

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

我怎样才能做到这一点?

4

1 回答 1

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;
    }
});
于 2013-04-21T10:06:51.420 回答