null 値でバリデーターにエラーを発生させるにはどうすればよいですか? ログから、null フィールドを送信しようとするとバリデーターが呼び出されていることがわかりますが、onError が発生することはないため、これを処理できません。誰かが空のフィールドを送信しようとしたときに、フォームの onSubmit でチェックインする代わりに、フィードバック パネルにエラー メッセージを表示したいと考えています。
@Override
protected void onValidate(IValidatable<String> validatable) {
String value = validatable.getValue();
if (value == null) {
ValidationError error = new ValidationError();
error.addMessageKey("messageKey");
validatable.error(error);
}
}
@Override
public void validateOnNullValue() {
return true;
}
編集
上記が簡単にできない場合、component.setRequired
が true で、フォームが空のフィールドで送信されたときに、エラー メッセージをフィードバック パネルに簡単に登録できる方法はありますか? ユーザーが空のフィールドでフォームを送信しようとしたときに、ユーザーにフィードバックがないようにしたいだけですが、onSubmit ハンドラーでこれに対するロジックを持ちたくありません。
2いくつかのコンテキストを編集
検証しようとしているフィールドの 2 つを次に示します。
final TextField<String> currentLpnField = new TextField<String>("currentLpn", Model.of(""));
currentLpnField.setOutputMarkupId(true);
currentLpnField.setRequired(true);
currentLpnField.add(new BarcodeLPNValidator());
final TextField<String> upcField = new TextField<String>( "upc", new Model<String>() );
upcField.setOutputMarkupId(true);
upcField.setRequired(true);
upcField.add(new BarcodeUPCValidator());
プロパティファイルの内容は次のとおりです。
upc.null=UPC cannot be null
upc.Required=UPC is required
currentLpn.null=LPN cannot be null
currentLpn.Required=LPN is required
*.Required メッセージは、フィールドに情報を入力し、検証してから削除し、再度検証を試みた後にのみ表示されます。フォームを読み込んでデータを入力せずに送信すると、何も得られません。