Passar Parametros com Link

2 respostas
llucas

Olá
Eu estou desenvolvendo uma aplicação web com JSF e meu Problema é o seguinte:
Eu quero fazer uma pesquisa no banco de dados, e apresentar os dados no navegador em forma de links que redirecionem para outra página enviando o id do item selecionado como parametro.
Eu to usando primefaces mas acho que isso num vem bem ao caso
Meu codigo é mais ou menos esse

<c:forEach var="item" items="${item.itemList}">
        <prime:commandLink value="${item.nome}" action="destino" ajax="false" style="font-size: 12px;" />
</c:forEach>

Eu quero passar ${item.id} como parametro pra abrir a pagina destino.xhtml mais ou menos assim: “/destino.xhtml?id=1”

Deu pra entender o que eu quero? E como eu faço isso?

2 Respostas

dev.rafael

P/ a lista de itens.

<p:dataList value="#{item.itemList}" var="item">
  <h:link value="#{item.nome}" outcome="destino">
    <f:param name="id" value="#{item.id}" />
  </h:link>
</p:dataList>

P/ a página de detalhes.

<f:metadata>
  <f:viewParam name="id" value="#{detalhes.id}" />
</f:metadata>

Ai no managed bean.

@Named
@RequestScoped
public class Detalhes {

  private Item item;

  public Integer getId() { return item != null ? item.getId() : null; }
  public void getId(Integer id) {
    if (item == null) {
      // lógica de carregamento do Item (find by id)
    }
  }

}
llucas

valeu num usei tudo o que você disse mas com seu codigo consegui fazer o que eu queria.

Criado 4 de novembro de 2010
Ultima resposta 6 de nov. de 2010
Respostas 2
Participantes 2