[RESOLVIDO] JSF - RichFaces: dataTable com commandLink

15 respostas
E

Boa tarde!!

Estou tentando usar a tag commandLink, tanto do JSF (h:commandLink) como do RichFaces (a4j:commandLink) dentro de uma rich:dataTable. Uma das colunas do dataTable terá um link. O action deste link está relacionado a um método de um Bean. Acontece que o método nunca é chamado. É como se o evento não fosse disparado.

Já encontrei alguns colegas com um problema similar e vi que no caso deles o escopo do bean era o problema. O escopo do meu bean já é session, então não sei o que pode estar acontecendo!

Segue uma versão de teste do código que estou usando.

Coluna do dataTable onde uso o commandLink:

<rich:column width="auto" styleClass="resutado_consulta">
                <a4j:commandLink id="visualizaDoc" action="#{BeanConsulta.teste}">
                        <h:outputText value="#{documento.idDocumento}"/>
                </a4j:commandLink>
            </rich:column>

Método do Bean (apenas pra teste…):

public void teste(){
        int a;
        a = 1;
        a++;
    }

Agradeço a ajuda!!!

15 Respostas

dayvison.lemos

Tente mudar o Scopo para Conversation, e no page.xml da tua view adicione o

Sempre usei commandLink, actions, etc. em dataTable, nunca tive problema.

E

Eu sou novato no assunto, então posso estar escrevendo besteira, mas no JSP existe este escopo Conversation?

Eu só vi alguma coisa assim no Seam Framework…

dayvison.lemos

Quando vc usa um h:dataTable funciona??
vc já está usando o h:form ??

Rodei um exemplo em jsf puro e funcionou, tanto a action quanto o redirecionamento.

ps. não tentei com o richfaces.

danielfigueiredoc

Não tem escopo Conversation no Facelets puro com JSF ou só o JSF, só tem Request e Session, é 8 ou 80, mas isso não interfere na chamada do método, mas sim na propagação dos valores.
Verifique duas coisas, se o nome que você está passando na expressão #{} está de acordo com o do faces-config.xml e se lá no faces o caminho do arquivo está correto.
Não esqueça também de ver se o método chamado tem o tipo de retorno como String, nem que retorne null mas é obrigatório ser String, caso contrário ele não vai chamar o método.

[]'s

Claudio_Nazzari

Da uma olhada se nao esta gerando nenhum erro de Javascript.
Tenta mudar o form de h:form para a4j:form

E

Fala galera, tudo bem?

Obrigado pelas dicas, mas infelizmente ainda não consegui resolver o problema. Vamos atualizar a situação:

Eu fiz vários testes, já troquei o commandLink por commandButton, já usei actionListener no lugar de action… e até agora nada!
No caso do commandButton eu descobri que se colocasse ele fora do dataTable ele dispara o evento e chama o ouvinte normalmente, porém dentro do dataTable não funciona de jeito nenhum.

Alguém já passou por isso??

dayvison.lemos

vc já experimentou colocar no value do comandButton??
tipo:

<rich:column width="auto" styleClass="resutado_consulta">  
    <a4j:commandLink id="visualizaDoc" action="#{BeanConsulta.teste}" value="#{documento.idDocumento}"/>  
</rich:column>

Talvez seja isso…

E

Não deu certo cara… :?

dayvison.lemos

Pow cara, rodei um exemplo aqui com jsf + richfaces, igual ao teu exemplo e funcionou…
se quiser, eu te envio o fonte…
é só mandar teu e-mail…

Abraços…

dayvison.lemos

tirei o h:form do exemplo q fiz e não funcionou…
vc tem certeza q ta usando o dataTable dentro do h:form???

E

Por via das dúvidas vou refazer a parte do h:form…

danielfigueiredoc

Já tentou colocar um a4j:support ao invés do commandLink?
Se talvez o problema for estar dentro da dataTable ele pode resolver.

[]'s

E

Fala pessoal!!! Problema ainda sem solução!!

Dayvison, o exemplo que você me mandou realmente funciona!

Também iniciei um projeto do zero, fiz os testes e também funcionou!

Deve ser alguma configuração no projeto que estou trabalhando… já não sei mais o que alterar ou testar.

[]'s a todos!

E

Fala pessoal!!

Bom, o problema persistiu, então tive que arrumar uma “solução alternativa” e vai ficar assim por enquanto.

Realmente não encontrei uma explicação lógica pro caso.

De qualquer forma, valeu pela ajuda!

Kleber-rr

emersonjs:
Fala pessoal!!

Bom, o problema persistiu, então tive que arrumar uma “solução alternativa” e vai ficar assim por enquanto.

Realmente não encontrei uma explicação lógica pro caso.

De qualquer forma, valeu pela ajuda!

QUal foi a solução alternativa que vc encontrou?? No meu caso, tive de retirar o h:form pra poder funcionar…

Vlws

Criado 13 de outubro de 2009
Ultima resposta 30 de jun. de 2010
Respostas 15
Participantes 5