Cómo comprobar después de la fase de Validaciones de fase si la validación ha fallado?

He escrito un PhaseListener en el que estoy comprobando para las Validaciones de fase. Hay una manera con la que puedo comprobar en el afterPhase() método de escucha de que la validación ha fallado y la siguiente fase después de la fase de Validación será el Render de la fase de Respuesta.

OriginalEl autor Tarun Sapra | 2012-02-03

3 Kommentare

  1. 1

    Cómo sobre el uso de FacesContext, se puede comprobar si hay alguna en la cola de espera de mensajes? Por ejemplo.

    FacesContext context = FacesContext.getCurrentInstance();
    Iterator<FacesMessage> messages = context.getMessages();

    espero que ayude.

    Eso es exactamente lo que estoy haciendo ahora, FacesContext.getCurrentInstance().getMaximumSeverity != null, gracias 🙂
    Si usted tiene su propio validadores que puede enque INFORMACIÓN o mensajes de ADVERTENCIA, entonces usted puede ignorarlo.

    OriginalEl autor Kris

  2. 6

    Si estás en JSF 2.0, sólo tiene que utilizar FacesContext#isValidationFailed() para comprobarlo.

    if (context.isValidationFailed()) {
        //Validation has failed.
    }

    Puede por el camino también comprobar en la vista de lado como sigue:

    <h:panelGroup rendered="#{facesContext.validationFailed}">
        <p>Validation has failed.</p>
    </h:panelGroup>

    OriginalEl autor BalusC

  3. 3

    Uso de la máxima gravedad para el error en el FacesContext

    Severity maximumSeverity = FacesContext.getCurrentInstance().getMaximumSeverity();
    boolean validationFailed=false;
    if (maximumSeverity != null
            && (maximumSeverity==FacesMessage.SEVERITY_ERROR || maximumSeverity
                ==FacesMessage.SEVERITY_FATAL)) {
        validationFailed=true;
    }

    Si el valor de la validationFailed es cierto, entonces hay algunos mensajes de error presente.

    OriginalEl autor prajeesh kumar

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea