validar validadores solo numeros letras framework formulario especiales ejemplo caracteres jsf jsf-2 bean-validation hibernate-validator

jsf - solo - validadores java



Múltiples validadores en un campo con validación de beans JSF (1)

Si su configuración JSF 2 interpreta valores vacíos enviados como "" y no null entonces:

El validador @NotBlank devuelve false porque su cadena anotada está vacía.

El validador @Max devuelve false porque de acuerdo con la implementación de hibernación (supongo que está utilizando la base de implementación de hibernación en sus publicaciones anteriores).

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; } }

En su caso, el parámetro Cadena de value contiene un valor vacío ("") y el constructor BigDecimal (Cadena) arroja una excepción y luego el validador devuelve false .

Tienes dos posibles soluciones:

Estoy tratando de hacer la validación múltiple de un campo

@NotBlank(message = "{name.required}") @Max(value = 25, message = "{long.value}") public String name;

JSF:

<h:inputText id="name" value="#{person.name}" size="20"> </h:inputText> <h:message for="name" style="color:red" />

pero cuando dejo el campo vacío, muestra ambos mensajes de error.

cualquier idea sobre cómo manejar ambos casos, validar el vacío y la longitud máxima de forma independiente.