1

ウィケット 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);
    }

}

Registation.html および .java ファイルが存在する同じパッケージに、Registration.properites ファイルがあります。私の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 に答える