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










