1

我正在使用 wickets 1.5。我有注册页面,其中的文件必须仅验证数字(如电话号码)。我有一个验证类如下

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

}

我的 Registration.properites 文件与 Registation.html 和 .java 文件位于同一个包中。我的Registration.properites

Registration.phoneno= 请只输入数字

我在我的检票口类
phoneno.add(new Validator());

我得到以下错误

找不到组件的错误消息:TextField@sendform:phoneno 和错误:[ValidationError message=[null],keys=[Validator.phoneno],variables=[null]]。尝试过的键:phoneno.Validator.phoneno、Validator.phoneno。

我做错了什么?我已经按照下面的链接 http://www.mkyong.com/wicket/create-custom-validator-in-wicket/

4

1 回答 1

2

我认为您没有正确指定属性键。getClass().getSimpleName()当您的密钥以“注册”开头时,该方法将返回“验证器”。试试这个:

error.addMessageKey("Registration.phoneno");
于 2012-07-27T07:38:34.727 回答