Por que meu evento Ajax não funcionada selectOneMenu - primefaces?

803 views
Skip to first unread message

Marcelo Gomes

unread,
Nov 6, 2015, 7:21:16 PM11/6/15
to javasf: JavaServer Faces Group
Pessoal

Estou implementando o <p:selectOneMenu> exatamente igual ao exemplo do primefaces e o evento ajax não é chamado?

meu .xhtml (1º caso)

<h:form id="frmEnvolvidos">
    ....

    <p:selectOneMenu value="#{cadastroAtividadeBean.envolvidoTipo}" id="envolvido-tipo" 
required="true" requiredMessage="Selecione um Tipo de Pessoa"
valueChangeListener="#{cadastroAtividadeBean.handleTipoPessoa}"
process="@this" update="envolvido-cpf">
<f:selectItem itemValue="F" itemLabel="Física" var="tipo"/>
<f:selectItem itemValue="J" itemLabel="Jurídica" var="tipo"/>
    </p:selectOneMenu>

    ....


</h:form>

Meu Bean

public void handleTipoPessoa(ValueChangeEvent event) {
this.envolvidoTipo = (String) event.getNewValue();
System.out.println("Tipo : " + this.envolvidoTipo);
}


Problema: Não executa e a saída do console não é gerada.


Segundo caso (uso do Ajax)

xhtml

<h:form id="frmEnvolvidos">

    ...

    <h:column width="10%">
<p:selectOneMenu value="#{cadastroAtividadeBean.envolvidoTipo}" id="envolvido-tipo" 
    required="true" requiredMessage="Selecione um Tipo de Pessoa">
    <p:ajax event="change" update="frmEnvolvidos:envolvido-cpf" listener="#{cadastroAtividadeBean.mudarTipoPessoaEnvolvido}"/>
    <f:selectItem itemValue="F" itemLabel="Física" var="tipo"/>
    <f:selectItem itemValue="J" itemLabel="Jurídica" var="tipo"/>
        </p:selectOneMenu>
    </h:column>

    <h:column width="15%" id="campos-cpf">
<p:inputText value="#{cadastroAtividadeBean.envolvidoCpf}" size="17" 
    styleClass="#{cadastroAtividadeBean.styleClassCpf}"
    required="true" requiredMessage="CPF/CPNJ é obrigatório" id="envolvido-cpf"/>
</h:column>

    ...

</h:form>




Meu Bean
/**
* Listener que muda o tipo de pessoa envolvido
*/
public void mudarTipoPessoaEnvolvido() {

if ("F".equals(this.envolvidoTipo)) {
styleClassCpf = "cpf";
} else {
styleClassCpf = "cnpj";
}
this.envolvidoCpf = "";
}

Estou a horas testando, alterando e pesquisando e não consigo resolver isso.

Desde já sou grato por toda ajuda que vier.

Abraços

Marcelo

Anderson Matos

unread,
Nov 10, 2015, 1:55:07 PM11/10/15
to javasf: JavaServer Faces Group
Já tentou usar <p:ajax> ?

::  xhtml  ::
<p:selectOneMenu id="campo1" value="#{MBean.obj.campo}">
        <f:selectItem itemValue="#{null}" itemLabel="" />
<f:selectItems value="#{MBean.list}" var="obj" itemValue="#{obj.descricao}" itemLabel="#{obj.titulo}" />
<p:ajax listener="#{MBean.onCampo1Change}" update="campo2" />
</p:selectOneMenu>


::  MBean  ::
public void onCampo1Change() {
obj.setCampo(valor);
}

Marcelo Gomes

unread,
Nov 11, 2015, 7:20:41 AM11/11/15
to javasf: JavaServer Faces Group
Anderson, 
Sim. Eu acho que é bug, pois todas as tentativas foram em vão.

Marcelo Gomes

unread,
Nov 11, 2015, 7:20:43 AM11/11/15
to jav...@googlegroups.com
Anderson

Já, e nada!


Att
Marcelo Gomes
MG Consultoria e Serviços em TI
Tel.: (11) 9 8364-3775 / (11) 2214-3585

--
Você recebeu essa mensagem porque está inscrito no grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para javasf+un...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/javasf.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/javasf/9ff47a4d-60fd-4e8a-8afd-df2a54d508a4%40googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Anderson Matos

unread,
Nov 11, 2015, 8:23:42 AM11/11/15
to javasf: JavaServer Faces Group
Cria um projeto só para testar isso. Costumo fazer isso quando acontece dessas coisas comigo. É bom para ir mapeando onde pode estar o problema.

Marcelo Gomes

unread,
Nov 11, 2015, 8:29:38 AM11/11/15
to jav...@googlegroups.com
Anderson

Valeu pela dica.

Vou fazer isso e posto o resultado.

Abraços


Att
Marcelo Gomes
MG Consultoria e Serviços em TI
Tel.: (11) 9 8364-3775 / (11) 2214-3585

Davi Mustafa

unread,
Nov 11, 2015, 8:55:34 AM11/11/15
to javasf: JavaServer Faces Group
olha meu exemplo, ve se da certo assim. No selectOneMenu tem o valueChangeListener e o ajax só com o event=change

<p:selectOneMenu id="servicos" valueChangeListener="#{execucaoBean.carregarBoxComandosServicos}">
<f:selectItem itemLabel="#{msgs.selecioneUmServico}"/>
<f:selectItems value="#{execucaoBean.enumList.listaServicos}" var="servico" itemValue="#{servico}" />
<p:ajax event="change" update="comandosServicos, opcoesComandos, subComandos"/>
</p:selectOneMenu>
Reply all
Reply to author
Forward
0 new messages