我正在使用wickets 1.5。我有注册页面,其中fileds必须仅对数字进行验证(如电话号码)。我有一个验证类,如下所示
public class Validator implements IValidator<String> {
Pattern pattern;
public Validator() {
pattern = Pattern.compile("[0-9]+");
}
public void validate(IValidatable<String> validatable) {
final String field = validatable.getValue();
if (pattern.matcher(field).matches() == false) {
error(validatable, "phoneno" );
}
}
private void error(IValidatable<String> validatable, String errorKey) {
ValidationError error = new ValidationError();
error.addMessageKey(getClass().getSimpleName() + "." + errorKey);
validatable.error(error);
}
}
我的Register.properites文件位于Registation.html和.java文件所在的同一个包中。 我的 Registration.properites 是
Registration.phoneno =请仅输入数字
我在我的检票口班中称呼这个 phoneno.add(新的Validator());
我收到以下错误
找不到组件的错误消息:TextField @ sendform:phoneno and error:[ValidationError message = [null],keys = [Validator.phoneno],variables = [null]]。尝试过的密钥:phoneno.Validator.phoneno,Validator.phoneno。
我做错了什么? 我按照以下链接完成了这项工作 http://www.mkyong.com/wicket/create-custom-validator-in-wicket/
答案 0 :(得分:2)
我认为您没有正确指定属性键。当您的密钥以“注册”开头时,getClass().getSimpleName()
方法返回“Validator”。试试这个:
error.addMessageKey("Registration.phoneno");