JSF: Como passar parametro via "commandButton"

15 respostas
keller

Olá,

Tenho da seguinte forma para passar um parametro
para o BackingBean , via commandLink.

<h:commandLink action="#{endereco.adicionarEndereco}" value="Salvar">
	<f:param value="#{entidade.id}" name="entidadeId"/>
</h:commandLink>

Porem foi pedido que fosse utilizado um botao (commandButton),
e nao um link, para ficar igual as outras paginas…

Alguem poderia me ajudar!? Valeu! :smiley:

15 Respostas

micheljuca

eu uso hidden

keller

Olá,

Poderia postar mais especificamente como fazer isso?
Eu nao conheco JSF muito bem, ainda estou aprendendo.

Valeu! [s] :thumbup:

micheljuca

declaro

<h:inputHidden id="campo" value="#{Bean.campo}" />

E posso setar um valor numa funcao javascript por exemplo:

document.forms['frm']['frm:campo'].value = "false";
keller

Olá,

Mas ai voce esta passando um valor ‘estatico’ nao é ?
Eu preciso passar um valor dinamicamente…

Valeu! [s] :thumbup:

micheljuca

eh dinamico cara, na atribuicao pode ter qualquer coisa.
Eu uso por exemplo pra passar por qual orderby eu quero o resultado.

keller

Olá,

Cara eu vou te dizer que ainda nao entendi… :frowning:
Primeira vez que trabalho com web entao nao tenho um bom conhecimento…

Seguinte nao tem algo mais facil tipo isso:

&lt;h:commandButton action="#{endereco.adicionarEndereco}" value="Salvar"&gt;
	&lt;f:param value="#{entidade.id}" name="entidadeId" /&gt;
&lt;/h:commandButton&gt;

Valeu! Até… :thumbup:
[s]

gustavodelgado

gui:
Olá,

Cara eu vou te dizer que ainda nao entendi… :frowning:
Primeira vez que trabalho com web entao nao tenho um bom conhecimento…

Seguinte nao tem algo mais facil tipo isso:

&lt;h:commandButton action="#{endereco.adicionarEndereco}" value="Salvar"&gt;
	&lt;f:param value="#{entidade.id}" name="entidadeId" /&gt;
&lt;/h:commandButton&gt;

Valeu! Até… :thumbup:
[s]

Meu problema é bem o oposto do seu, hehe. Eu fiz dessa maneira que vc falou (com um <f:param> dentro do botão e pegando o valor em uma action listener. Funcionou. Já quando tento coloca-lo em um commandLink, está dando erro.

keller

gustavodelgado:
gui:
Olá,

Cara eu vou te dizer que ainda nao entendi… :frowning:
Primeira vez que trabalho com web entao nao tenho um bom conhecimento…

Seguinte nao tem algo mais facil tipo isso:

&lt;h:commandButton action="#{endereco.adicionarEndereco}" value="Salvar"&gt;
	&lt;f:param value="#{entidade.id}" name="entidadeId" /&gt;
&lt;/h:commandButton&gt;

Valeu! Até… :thumbup:
[s]

Meu problema é bem o oposto do seu, hehe. Eu fiz dessa maneira que vc falou (com um <f:param> dentro do botão e pegando o valor em uma action listener. Funcionou. Já quando tento coloca-lo em um commandLink, está dando erro.

Olá,

Teria como tu colar aqui como tu fez pra passar parametro via commandButton ? ( .JSP & .JAVA )

Valeu! :thumbup:
[s]

urubatan

podendo usar o tomahawk, da pra fazer assim:

<h:commandLink action="#{home.editar}">
<t:updateActionListener property="#{home.usuarioCartao.cpf}"
value="#{ent.cpf}" />
</h:commandLink>

gustavodelgado

gui:
Olá,

Teria como tu colar aqui como tu fez pra passar parametro via commandButton ? ( .JSP & .JAVA )

Valeu! :thumbup:
[s]

Na coluna da tabela, eu coloquei o seguinte:

&lt;ui:button action="#{FrmConvenioConsulta.button2_action}"
   actionListener="#{ConvenioConsulta.selConvenioListener}" 
   id="button2" text="Sel"&gt;
   &lt;f:param id="codigoParam" name="codigoParam" value="#  
      {currentRow.value['codigo']}"/&gt;
&lt;/ui:button&gt;

Uso o <ui:button> pois é um componente do Studio Creator, mas com o commandButton acredito que seja a mesma coisa.

Aí no meu actionListener pego este parâmetro, faço um select no banco pra ver se este código já está cadastrado, e o objeto retornado pelo select jogo na sessão. No meu caso ficou assim:

public void selConvenioListener(ActionEvent event){
        UIParameter component = (UIParameter) event.getComponent().findComponent("codigoParam");
        Integer cod = (Integer)component.getValue(); 
        
        ConvenioAuxilioService cs = new ConvenioAuxilioService();
        ConvenioAuxilio ca = (ConvenioAuxilio)cs.selectById(cod);
        
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("ConvenioAuxilio", ca);

    }
keller

Beleza! Acabei resolvendo aqui antes de voce colocar a resposta ficou,
praticamente igual acho que só no JSF eu usei outras tags. Ficou assim:

.JSP

&lt;h:commandButton value="Salvar" actionListener="#{email.adicionarEmail}"&gt;
	 &lt;f:param id="entidadeId" name="entidadeId" value="#{entidade.id}" /&gt;
&lt;/h:commandButton&gt;

.JAVA

public void adicionarEmail(ActionEvent event)
{
   UIParameter parameter = (UIParameter) event.getComponent().findComponent("entidadeId");
   long idEntidade = Long.parseLong( parameter.getValue().toString() );
   System.out.println("--&gt;&gt; " + idEntidade + " &lt;&lt;--");
}

Valeu pela ajuda!
Até… :thumbup:
[s]

urubatan

legal, mas ainda prefiro o

&lt;t:updateActionListener property="#{home.usuarioCartao.cpf}" value="#{ent.cpf}" /&gt;
que ja sera o parametro direto em uma propriedade que eu especifiquei, no caso acima setando a propriedade home.usuarioCartao.cpf, com o valor do cpf da linha atual :smiley:

D

Alguem tem ideia de como passo um bean como parametro para um metodo de outro bean?
Tentei fazer o que foi sugerido aqui no topico, mas deu erro.

Daniel Camargo.

D

Alguem tem ideia de como passo um bean como parametro para um metodo de outro bean?
Tentei fazer o que foi sugerido aqui no topico, mas deu erro.

Daniel Camargo.

alexfe

Precisando de algo parecido

Criado 13 de abril de 2006
Ultima resposta 25 de nov. de 2015
Respostas 15
Participantes 6