2012-06-12 20 views
8

Tengo un formulario con mucho inputText, lo que quiero es resaltar aquellos que no están siendo completados con los datos correctos.Resalta un texto de entrada en JSF cuando se produce un error de validación

Intenté usar 'component.valid' pero siempre devuelve que el campo no es válido (es decir, los campos son siempre rojos).

este es el código:

<h:inputText value="#{creerPersonne1.nom}" id="nom" 
    style="#{not nom.valid ? 'border-color:red;' : 'border-color:black;'}"> 
    <f:validateRegex pattern="^[a-zA-Z]+$"></f:validateRegex> 
</h:inputText> 

este es el resultado:

Always invalid

nota de que el campo también se pone de relieve cuando la página se carga por primera vez.

+1

Usted escribió 'component.valid' en su texto pero su código muestra' nom.valid'. ¿Has probado el (correcto) 'component.valid'? –

Respuesta

20

Debe usar component.valid en lugar de nom.valid.

component es un objeto EL implícito para el componente de entrada actual. Y component.valid llama al método isValid() del componente del lado del servidor. El argumento id no se puede usar de esta manera.

Por lo que debe cambiar el código de la siguiente manera:

style="#{ component.valid ? 'border-color:black;' : 'border-color:red;'}" 

(No relacionado, pero se debe utilizar mejor las clases de estilo en lugar de estilos cifrados duros El cheque válido trabaja para el atributo styleClass también.).

+0

De hecho, pensé que el componente tenía que ser reemplazado por la identificación real del componente:/ Gracias. – Eildosa

+0

Por cierto, me acabo de enterar por las malas que no funcionarán sin la dependencia "hibernate-validator" – Eildosa

Cuestiones relacionadas