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!!!
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.
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…
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.
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
Da uma olhada se nao esta gerando nenhum erro de Javascript.
Tenta mudar o form de h:form para a4j:form
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??
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…
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…
tirei o h:form do exemplo q fiz e não funcionou…
vc tem certeza q ta usando o dataTable dentro do h:form???
Por via das dúvidas vou refazer a parte do h:form…
Já tentou colocar um a4j:support ao invés do commandLink?
Se talvez o problema for estar dentro da dataTable ele pode resolver.
[]'s
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!
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!
[quote=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![/quote]
QUal foi a solução alternativa que vc encontrou?? No meu caso, tive de retirar o h:form pra poder funcionar…
Vlws