Я работаю с JSF 2.0 и Glassfish v3. Я тестировал функциональность проверки bean-компонента JSR303, поэтому я создал валидатор, который реализует ConstraintValidator
, а затем аннотировал это свойство, которое я хочу проверить.
Работает нормально, но отображает страницу ошибки Glassfish по умолчанию. Я не хочу, чтобы это отображалось, я бы предпочел, чтобы сообщение отображалось в <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: я знаю, что существуют более простые способы проверки длины строки, но приведенный выше фрагмент кода предназначен только для демонстрации / тестирования. У меня есть другие планы с валидатором.