JSF 2.0 と Glassfish v3 を使用しています。JSR303 Bean 検証の機能をテストしていたので、実装するバリデーターを作成し、検証しConstraintValidator
たいプロパティに注釈を付けました。
問題なく動作しますが、Glassfish のデフォルトのエラー ページが表示されます。これを表示したくないので、メッセージを a<h:outputText>
または何かに表示したいと思います。
これを達成する方法を知っている人はいますか?
これが私のバリデータメソッドです:
@Override
public boolean isValid(String searchArg, ConstraintValidatorContext ctx) {
boolean searchArgCorrect = true;
FacesMessage msg;
if(searchArg!=null) {
ctx.disableDefaultConstraintViolation();
if(searchArg.length() < 3) {
ctx.buildConstraintViolationWithTemplate("Searcharg is too short").addConstraintViolation();
searchArgCorrect=false;
msg = new FacesMessage(
FacesMessage.SEVERITY_ERROR,
"Searcharg is too short", null);
throw new ValidatorException(msg);
}
}
return searchArgCorrect;
}
PS: 文字列の長さを検証する簡単な方法があることは知っていますが、上記のコード スニペットはデモ/テストのみを目的としています。私はバリデータと別の計画を持っています。