Passar parametros para metodo no JSF

TENHO EM MEU JSP ESTA ESTE BOTAO

<t:commandButton image="/images/status_operacao_reagendada.gif" title="#{Message.f_reagendamento_msgeditar}" action=“goReagendar”>
<t:updateActionListener property="#{ReagendarHandler.reagendar}" value="#{lista.orsid,lista.orsid}" />
</t:commandButton>

Q EXECUTA O METODO REAGENDAR e o value é o parametro q ele recebe
gostaria de sbaer como faco para passar dois parametros?

alguem sabe como?

valeu

Olha, acho que voce confundiu o uso dos componentes…
No JSF geralmente (a nao ser que tenha algo personalizado) a gente nao chama um método com parametros; chamamos um método sem argumentos e dentro do mesmo buscamos os parametros ou no request ou entao em outro atributo do managed-bean que já tenha sido atualizado com o valor do request através de um componente como esse t:updateActionListener.

Voce chama o método na action do commandButton, e o updateActionListener voce usa para pegar o valor do ‘value’ e jogar no valor do ‘property’.
E também nao da pra passar dois parametros de uma vez separando por vírgula, vc tem que passar os dois um de cada vez.

Se eu estiver errado me corrijam, pois uso a implementação de referencia e nao sei se esses componentes do tomahawk possuem comportamentos diferentes.

Olá.

Você deve executar a action chamando um método sem parâmetros.

Seu JSP deve passar o parâmetro para o método usar.
Se for um parâmetro simples, você pode informar, junto à action:

<h:commandButton action="managedBean.executaAction" value="ok"> <f:param name="meuParametro" value="#{lista.usuario}" /> </h:commandButton>

No seu código Java:

Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); Object param = params.get("meuParametro");

Note que este é um dos meios de se fazer isso, a outra é criar um property no seu managedBean.

Confesso que não gosto de nenhuma, mas é uma solução. :slight_smile:

Att.