[Resolvido] - JSF problemas com h:commandLink dentro de c:forEach

2 respostas
llucas

Olá

Eu estava querendo criar uma tabela onde era selecionado um objeto do bando de dados clicando na linha dessa tabela esse codigo não estava funcionando e eu fui tentando simplificar ele com o objetivo de encontrar o erro.

No fim eu cheguei a esse código simples que ainda não funciona (o action do commandLink não é chamado)

<h:form> <c:forEach items="#{meuBean.listadepessoas}" var="pessoa"> <h:commandLink action="#{meuBean.imprimir}" value="Link" /> <br /> </c:forEach> </h:form>

O que eu queria era selecionar o cliente passando o id como parametro. Mas eu testei so chamar uma função do bean pra imprimir um hello world e nem isso funcionou.
Já mudei o escopo do bean, testei usar o actionListener do commandbutton, o listener do f:ajax
Muito grato se alguem puder me ajudar

2 Respostas

kritiuns

veja se o que essa tabela faz é o mesmo que vc quer fazer e tente adaptar o codigo dela com o seu codigo …

http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?tab=editDataTable&cid=1178271

llucas

Vlw cara eu li isso ai e vi algumas soluções que não funcionaram por que meu problema era outro.

A lista que era carregada no forEach era baseada em um parametro que era passado pra página tipo (/exemplo.xhtml?pessoalistid=1)
Eu não falei isso no post por que achei que era irrelevante, mas na verdade era a causa do problema =/

Dei uma olhada num exemplo que eu mesmo ja tinha feito em outro projeto.
Pra funcionar eu so tive que repassar esse parametro no commandLink.
Bati muita cabeça com isso de noite, resolvi dormir e de manhã resolvi tudo em 10 min =)

<h:form>  
      <c:forEach items="#{meuBean.listadepessoas}" var="pessoa">  
         <h:commandLink action="#{meuBean.imprimir}" value="Link"> 
            <param name="pessoalistid" value="#{param.pessoalistid}">
         </h:commandLink>
         <br />  
      </c:forEach>  
   </h:form>
Criado 31 de maio de 2011
Ultima resposta 1 de jun. de 2011
Respostas 2
Participantes 2