JSF f:param

Olá pessoal,
estou precisando usar o f:param
e gostaria de saber se alguém tem
algum exemplo de como usar
o f:param e como pegar
o parametro com o FacesContext?

Será que alguém poderia me
dar uma ajuda?

[]'s.

Olá pessoal, alguém já mexeu com f:param do JSF?
Será que alguém pode me dar uma dica?

[]'s.

Olá,

Se o f:param estiver em um h:commandLink, o seu valor é automaticamente jogado nos parâmetros da requisição.
Para pegar, faça o seguinte:

facesContext.getExternalContext().getRequestParameterMap().get("nome_do_parametro");

Se estiver em um botão é um pouco mais complicado, porque este componente não faz tratamento do f:param e consequentemente seu valor não fica disponível no Request.
É preciso pegar uma referência ao botão e procurar o componente f:param entre seus filhos, para só aí obter o valor.

Se tiver dúvidas posta aí!

Bom …

Usa o <s:link> para usar o <f:param>

Na sua action você só cria a variavel com o mesmo nome do <f:param>

Ex:

<s:link>
<f:param name=“parametro” value="#{seuBean.parametro}"/>
</s:link>

Ai chama assim ex:

@RequestParameter
String parametro;

Espero ter ajudado.

Abraço

use o &lt;f:setPropertyActionListener value="#{item}" target="#{myBean.propriedade}" /&gt;

Jóia gomesrod?
Obrigado pela ajuda, mas
eu estou precisando fazer isso
justamente para um botão,
vc tem algum exemplo
de código aonde usa
o f:param com um commandButton?

Abraço.

Jóia finotti? blz natureza?
Obrigado pela ajuda,
mas eu estou precisando usar
um f:param com um commandButton
vocês ou alguémnão tem um exemplo
para me mostrar?

[]'s.

você pode usar com um commandButton.

&lt;h:commandButton value="Press here" action="#{myBean.action}"&gt; &lt;f:setPropertyActionListener target="#{myBean.property1}" value="propertyValue1" /&gt; &lt;f:setPropertyActionListener target="#{myBean.property2}" value="propertyValue2" /&gt; &lt;/h:commandButton&gt;

Aqui tem várias formas de se passar parâmetros para o MB. Eu prefiro usar o f:setPropertyActionListener mesmo.

[]'s

Obrigado finotti,
eu vou fazer os testes aqui.

Abraço.

Jóia Pessoal?
Eu estou fazendo o seguinte link:

<h:column>
      <f:facet name="header">
              <h:outputText value="Endereco"/>
      </f:facet>
      <h:commandLink action="#{ProdutorController.tabelaEnd}">
               <f:setPropertyActionListener target="#{ProdutorController.endereco}" value="#{produtor.endereco}"/>
               <h:graphicImage styleClass="alinhamento_endereco" url="Icons/endereco.png" title="Endereco" />
      </h:commandLink>                                    
</h:column>

Mas eu preciso pegar a referência e não estou conseguindo:

public String tabelaEnd(){
        //parametro que veio da bean
        this.endereco = FacesContext.getCurrentInstance().
                getExternalContext().getRequestParameterMap().get("parametro_endereco");

        return "detalhes_endereco";
    }

Será que alguém pode me dar uma ajuda?

[]'s.

Ricardo, quando você usa o setPropertyActionListener, não é necessário recuperar o parâmetro através do FacesContext.
O parâmetro é “setado” automaticamente no Managed Bean. Você define qual atributo receberá o valor através do target="#{ProdutorController.endereco}
Nesse caso, o atributo endereco da classe ProdutorController receberá o “parâmetro”.

Valeu finotti,
agora deu certo aqui,
MUITO OBRIGADO!!! :smiley:

Abraço.

Olá,
Quero aproveitar a deixa e colocar aqui minha dúvida que acho que tem em comum com a discussão.
Preciso passar parâmetros para a página destino, sendo que a página chamadora e a página destino usam o mesmo Bean. No entanto, não quero usar escopo de sessão por motivos que não vem ao caso e estou usando ViewScoped.

Meu código ficou assim:

&lt;p:commandButton id="add" value="Adicionar" title="Adicionar" action="addpais" icon="ui-icon-plus"&gt;
    &lt;f:setPropertyActionListener value="#{paisControllerBean.newPais()}" target="#{paisControllerBean.pais}" /&gt;
&lt;/p:commandButton&gt;

Ao clicar no botão, o método newPais() é executado e um novo objeto “pais” é inicializado e retornado, mas ao entrar na página addpais a propriedade não está inicializada. Como posso pegar o valor de “pais” na página destino?

Obs:
Sei que posso inicializar o objeto “pais” na página destino por meio de uma viewAction, como segue:

&lt;f:metadata&gt;
    &lt;f:viewAction action="#{paisControllerBean.newPais()}" /&gt;
&lt;/f:metadata&gt;

Mas assim eu não teria os valores da view anterior nos quais preciso me basear para inicializar o objeto.