Если ваша конфигурация JSF 2 интерпретирует пустые отправленные значения как ""
, а не null
, тогда:
Валидатор @NotBlank
возвращает false
, потому что ваш аннотированный
строка пуста.
Валидатор @Max
возвращает false
, потому что в соответствии с реализацией hibernate (я полагаю, вы используете базу реализации hibernate на своих предыдущих постах).
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
//null values are valid
if ( value == null ) {
return true;
}
try {
return new BigDecimal( value ).compareTo( BigDecimal.valueOf( maxValue ) ) != 1;
}
catch ( NumberFormatException nfe ) {
return false;
}
}
В вашем случае параметр value
String содержит пустое значение (""), а конструктор BigDecimal (String) выдает исключение, и затем средство проверки возвращает false
.
У вас есть два возможных решения: