Senhores 
Preciso executar meu ManagedBean quando mudo a opção da selectOneMenu. Preciso dar o submit ao fazer isso.
Consegui colocando um botão e no evento onchange da combo, chama um javascript q dá um click no botão. Mas desse jeito, o meu botão fica aparecendo na tela, nao quero isso.
Como posso fazer? :?:
JSF - Executar metodo do ManagedBean ao mudar uma selectOneMenu
5 Respostas
E aí, tudo blz?
Não precisa disso tudo. Basta você submeter o formulário pelo evento onChange.
Eis um exemplo cujo evento é ainda “escutado”:
<h:selectOneMenu.. onchange="document.NOMEDOFORM.submit();" valueChangeListener="#{algo.listener}" >
...
</h:selectOneMenu>
ou ainda utilize DOM, caso não consiga:
document.getElementById(‘id_do_form’).submit();
Definindo um action no botão, creio que o mesmo será invocado após a submissão
Boa sorte
Entendi… mas como vou falar pra qual metodo do meu Bean ele vai?
Em um botão por exemplo eu coloco:
<h:commandButton value="Cadastrar" action="#{GarantiaBean.cadastroAuxiliar}" />
Nele eu falo q ele vai pro metodo cadastroAuxiliar do bean GarantiaBean. Onde declaro isso no jeito que vc mostrou acima?
Valeu!
Seguinte, você pode criar um método Listener (cujo evente é ValueChangeListener) e nesse método, no seu backing bean, você invoca este outro método que vc deseja.
Boa sorte
Então… fiz do jeito q vc falou, e rolou, PORÉM… ele não fez o forward pra onde eu queria… no meu método q o valueChangeListener chamou, retornou uma String SUCCESS, mas ele nao foi pra onde o SUCCESS está mapeado, ele voltou pra tela q estava… oq pode ser?
Eita é verdade , ele não retorna.
Cara, eu não sei. Desconfio que no objeto APPLICATION vc possa definir uma string de saída a ser visualizada pelo front-controller
Uma saída aí seria efetuar um sendRedirect pelo request
Falow