1
resposta

Após requisicao ajax, mesmo com input preenchido a validacao JSF reclama que o input esta vazio!

Olá Pessoal! :smiley: lembram daquele velho modelo de Combo de Estado + Combo de Cidade?

Neste caso temos aquele fluxo de funcionamento: Após o evento de mudança de valor(change) da combo de estado, então fazemos uma requisição ajax e chamamos a rotina responsável por fazer a busca das cidades contidas naquele estado e retorna-la para a combo de cidades.

Pois bem, estou utilizando o JSF 2.2 e depois de escolher o estado e a cidade, a validacao do JSF nao detecta que uma cidade ja foi escolhida na combo e pinta o controle de vermelho.

Meu código a seguir:

<div class="form-group row" id="combosEC">
        <h:outputLabel for="estado" styleClass="col-sm-2 control-label"
            value="Estado:" />
        <div class="col-sm-2">
            <p:selectOneMenu id="estado" value="#{enderecoBean.estadoEscolhido}"
                converter="estadoConverter" required="true"
                requiredMessage="É necessário preencher o campo estado">
                <f:selectItem itemLabel="Selecione" />
                <f:selectItems value="#{enderecoBean.listaEstados}" var="e"
                    itemValue="#{e}" itemLabel="#{e.sigla}" />
                <f:ajax event="change" render="@all"
                    update="@all #cidade #combosEC"
                    listener="#{enderecoBean.alterarCidadesPorEstado}" />
            </p:selectOneMenu>
        </div>
        <h:outputLabel for="cidade" styleClass="col-sm-1 control-label"
            value="Cidade:" />
        <div class="col-sm-2">
            <p:selectOneMenu id="cidade" value="#{enderecoBean.cidadeEscolhida}"
                converter="cidadeConverter" required="true"
                requiredMessage="É necessário preencher o campo cidade!">
                <f:selectItem itemLabel="Selecione" />
                <f:selectItems value="#{enderecoBean.listaCidades}" var="c"
                    itemValue="#{c}" itemLabel="#{c.nomeCidade}" />
            </p:selectOneMenu>
        </div>
1 resposta

é.. com esse código aí não ta parecendo que tem nada de errado... quando vc seleciona o estado o combo de cidades fica realmente preenchido? Confere no devtools do navegador quais são os parâmetros que estão sendo enviados..