Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tripa

[Resolvido] JSF - Enviar Value do Combobox para managed-bean em e

Recommended Posts

Olá pessoal,

tenho em uma página jsf um combobox no, seu evento onChange, chama um método do managed-bean que recebe a opção selecionada no combobox e executa algumas

tarefas, no código abaixo mostra a maneiro como estou tentado faze isso..... porém debugando vejo que o value do combobox enviado pro manage-bean chega sempre vazio ""...

 

 

#JSF


<h:selectOneMenu  id="condutor"  value="#{ordemsServicoController.ordemServico.condutor.nome}">
          <f:selectItems id="item" value="#{ordemsServicoController.listItensCondutor}"/>                                
           <a4j:support event="onchange" action="#{ordemsServicoController.completatelefone}" reRender="condutor, telefone_condutor" immediate="true">
                  <f:param name="destino" value="#{rich:findComponent('condutor').value}"/>
            </a4j:support>                                
</h:selectOneMenu>
#Manage-bean

public void completatelefone(){

        FacesContext context = FacesContext.getCurrentInstance();
        Map requestMap = context.getExternalContext().getRequestParameterMap();
        String destino = requestMap.get("destino").toString(); //AQUI SEMPRE NULL

        this.ordemServico.getCondutor().setTelefone(destino);

  }

#No JSD tentei passar o value desta maneira e o resultado foi o mesmo value chega vazio.....

<h:selectOneMenu  id="condutor">
      <h:selectOneMenu  id="condutor"  value="#{ordemsServicoController.ordemServico.condutor.nome}">                   
            <a4j:support event="onchange" action="#{ordemsServicoController.completatelefone}" reRender="condutor, telefone_condutor" immediate="true">
                <f:param name="destino" value="#ordemsServicoController.ordemServico.condutor.nome"/>
              </a4j:support>                                
</h:selectOneMenu>

como consigo obter o value do combobox nomanage-bean?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que implementar um método valueChangeListener.

 

Entre as propriedades do selectOneMenu você encontrará valueChangeListener que deve ficar assim: valueChangeListener="#{SeuMB.metodo}".

No seu Managed Bean você criará um método público, sem valor de retorno e que receba como parâmetro um ValueChangeEvent.

public void metodo(ValueChangeEvent event) {
   //event.getNewValue();
   //event.getOldValue();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que implementar um método valueChangeListener.

 

Entre as propriedades do selectOneMenu você encontrará valueChangeListener que deve ficar assim: valueChangeListener="#{SeuMB.metodo}".

No seu Managed Bean você criará um método público, sem valor de retorno e que receba como parâmetro um ValueChangeEvent.

public void metodo(ValueChangeEvent event) {
   //event.getNewValue();
   //event.getOldValue();
}

Muito bom Vergil...funcionou corretissimo

 

Ficou assim .....

<h:selectOneMenu  id="condutor"  value="#{ordemsServicoController.ordemServico.condutor.nome}" valueChangeListener="#{ordemsServicoController.metodo}" immediate="true" rendered="true">
      <f:selectItems id="item" value="#{ordemsServicoController.listItensCondutor}"/>                                
             <a4j:support event="onchange" reRender="moons" immediate="true" ajaxSingle="true"/>
</h:selectOneMenu>

Bean

 public void metodo(ValueChangeEvent event){
       
       event.getNewValue().toString(); //Obtive o valor desejado agora é só da continuidade
       
   }

Obrigado pela Ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.