user812612
user812612

Reputation: 399

Error Message in modal JSF doesn´t work

I have one xhtm in jsf and one modal within.

In this modal I have one field that I´m trying to validate and return an error.

my code:

Modal:

    <rich:popupPanel id="cancelssi" modal="true" width="500" height="280" zindex="2" domElementAttachment="form" show="#{demandasMB.showCancelar}" showWhenRendered="#{demandasMB.showCancelar}" >
    ...  


<h:panelGroup layout="block" class="area-input-100" id="idmotivocancelamentopanel">
                <h:panelGroup  class="label-campo">Justificativa de cancelamento:</h:panelGroup>    
                <h:inputTextarea styleClass="textarea-form-2-linhas" id="idmotivocancelamento" value="#{demandasMB.demandas.cnmmotivocancelamento}" maxlength="255"/>
                <h:message for="idmotivocancelamento" />                                    
            </h:panelGroup> 

            <h:panelGroup layout="block" class="clear"/>

            <h:panelGroup layout="block" styleClass="alinhaBotao">
                <h:commandButton value="Cancelar">
                    <f:ajax render="idmotivocancelamento idmotivocancelamentopanel" 
                                event="click"
                                listener="#{demandasMB.preCancelar()}"
                                execute="@form"
                                />
                </h:commandButton>          
                <h:commandButton value="Fechar"/>           
            </h:panelGroup>
    </rich:popupPanel>

in my MB I have:

    public void preCancelar(){

    if(StringUtils.isBlank(demandas.getCnmmotivocancelamento())){

        FacesMessage fm = new FacesMessage("Favor preencher");
        FacesContext.getCurrentInstance().addMessage("idmotivocancelamento",fm);

    }else{
        showConfirmacaoCancelar = true;
        showCancelar = false;
    }
}

I´m building FacesMessage but doesn´t appear in my modal.

What I´m doing wrong ?

thanks

Upvotes: 0

Views: 669

Answers (1)

kolossus
kolossus

Reputation: 20691

You need to ajax-update idmotivocancelamentopanel to reflect the FacesMessages you're adding.

An alternative is to use the <rich:message/>. Using the ajaxRendered="true" attribute will allow the message component be automatically updated on ajax-requests. So you'll instead have:

<rich:message for="idmotivocancelamento" ajaxRendered="true"/>

Upvotes: 1

Related Questions