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