Jump to content


Tripa

Member Since 11/11/2010
Offline Last Active 13/11/2010, 16:48
-----

Topics I've Started

Jsf - Enviar Value Do Combobox Para Managed-Bean Em Evento Onchange

11/11/2010, 17:25

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?

Tá ai pessoal encontrei a Solução....

para esse caso devo usar a propriedade valueChangeListener do selectOneMenu e no managed-bean o ValueChangeEvent

<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>

managed-bean 

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

Abraço!!

IPB Skin By Virteq