2012-10-04 25 views
8

Tengo h: mensajes para mostrar mensajes de error, y hay un componente que deseo que cambie su estilo en caso de error de validación (si algún componente tiene un error de validación o se muestra un mensaje de validación, entonces cambie el estilo de este componente específico).Estilo condicional en JSF

que sé sobre la manera de cambiar el estilo si el componente tiene errores de validación: JSF : Better way to check for existence of <h:message for="id"/>

pero quiero una manera más general, para cambiar el estilo, si cualquiera de los componentes en forma no es válida, o en otra palabras cualquier mensaje de validación se representa.

por favor asesórese sobre cómo lograr eso.

Respuesta

17

Puede usar FacesContext#isValidationFailed() para verificar si la validación ha fallado en general.

<h:outputText ... styleClass="#{facesContext.validationFailed ? 'fail' : 'success'}" /> 

Como alternativa, puede utilizar FacesContext#getMessageList() para comprobar si hay algún mensaje caras. Esto no indica necesariamente una falla de validación general, también puede haber mensajes globales/de éxito que se han agregado en el método de acción.

<h:outputText ... styleClass="#{not empty facesContext.messageList ? 'hasmessage' : 'nomessage'}" />