Problemas com Ajax4jsf e validação JSF

1 resposta
Rodrigo_Manhaes

Boa tarde!

Uso Ajax4jsf/JSF/Facelets e tenho enfrentado problemas em relação à validação do JSF. Por exemplo, no código abaixo eu tenho dois elementos , um para o usuário entrar com sigla da disciplina e outro para o ano/período em que a disciplina está sendo cursada. Ambos são marcados como "required". No da sigla da disciplina tenho um vinculado ao evento onblur para fazer uma requisição Ajax para buscar o nome da disciplina, caso exista.

<fieldset>
                
    <legend>Dados da Turma</legend>
                
    <p>
        <label jsfc="h:outputLabel" for="siglaDisciplina">Disciplina</label>
        <h:inputText id="siglaDisciplina" value="#{turma.siglaDisciplina}" size="8"
                valueChangeListener="#{turma.siglaDisciplinaSelecionada}"
                required="true" requiredMessage="A sigla da disciplina &#x00E9; obrigat&#x00F3;ria"
                binding="#{turma.siglaDisciplinaInput}">
            <a4j:support id="ajax1" event="onblur" reRender="descricaoDisciplina"/>
        </h:inputText>
                
        <h:outputText styleClass="emLinha" id="descricaoDisciplina" value="#{turma.disciplina.descricao}"
            binding="#{turma.descricaoDisciplinaOutput}"/>
    </p>
                
    <p>
        <label jsfc="h:outputLabel" for="anoPeriodo">Ano/Per&#x00ED;odo</label>
        <input jsfc="h:inputText" type="text" id="anoPeriodo" maxlength="7" size="7"
                value="#{turma.turma.anoPeriodo}" 
                onkeypress="mascaraAnoPeriodo(this, event)"
                required="true" requiredMessage="O ano/per&#x00ED;odo &#x00E9; obrigat&#x00F3;rio"/>
    </p>
</fieldset>

O problema é que se o campo para ano/período estiver vazio, a requisição Ajax não é realizada devido ao fato de que a validação JSF (required) não é contemplada. Caso o ano/período seja preenchido, a requisição é realizada sem problemas. Já tentei colocar no o atributo immediate="true", mas nesse caso a requisição não é feita de jeito nenhum, nem com o ano/período preenchido.

Alguém poderia ajudar?

1 Resposta

gustavodelgado

Olá,
Vc já tentou colocar o ajaxSingle=“true” no a4j:support?
Acredito que resolva.
[]s

Criado 19 de setembro de 2007
Ultima resposta 31 de mar. de 2008
Respostas 1
Participantes 2