Wicket textfield验证程序事件

Wicket textfield验证程序事件,wicket,feedbackpanel,Wicket,Feedbackpanel,我有一个包含文本字段的Wicket表单 我希望该文本字段至少包含3个字符 为此,我添加了一个StringValidator,如下所示: newPersonName.add(StringValidator.minimumLength(3)); 它正常工作,甚至向我的反馈面板组件报告错误 问题是,当验证失败时,我希望能够手动执行一些操作(某种日志),因此我希望“捕获”验证失败的事件,并在那里添加我自己的函数 我该怎么做呢?您只需将StringValidator子类化,并覆盖deco

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

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

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

        newPersonName.add(StringValidator.minimumLength(3));
它正常工作,甚至向我的反馈面板组件报告错误

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


我该怎么做呢?

您只需将
StringValidator
子类化,并覆盖
decoration
(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;
    }
});
newPersonName.add(新的StringValidator(3,null){
受保护的ValidationError(ValidationError错误,IValidatable validatable){
ValidationError superError=super.decoration(错误,可验证);
//这里是日志逻辑
返回超错误;
}
});

似乎找不到“decoration”的javadocs-此函数位于何处?如果找不到此方法,可能是因为您使用的是Wicket 1.5,在这种情况下,您需要重写
onValidate
或类似方法。