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