Tripa 0 Denunciar post Postado Novembro 11, 2010 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
Vergil 15 Denunciar post Postado Novembro 11, 2010 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
Tripa 0 Denunciar post Postado Novembro 11, 2010 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