JSF :: commandLink e commandButton

Pessoal, estou com um problema ao tentar utilizar a tag <h:commandLink> e preciso de um help.

O que acontece é o seguinte, tenho um método no managedBean:

public String sair() { LOG.info("Invalidando a sessão."); //TODO: implementar fechamento de sessão. LOG.info("Saindo do sistema."); return "sair"; }

Este quando é chamado, retorna a String “sair” que faz a navegação para a página de login. Pois é, quando eu utilizo um commandButton, funciona normalmente:

Porém se eu utilizo num commandLink, não funciona:

<h:commandLink styleClass="menu" action="#{menuBean.sair}"> <h:outputText value="sair" /></h:commandLink>

E no browser é apresentado um erro Javascript “Erro na página” - “Objeto esperado.”

Alguém pode me explicar o que está acontecendo?
Obrigado!

Oi Maurício,

Isso tem cara de bug da implementação do JSF que você está usando. Qual é?

Tente abrir a página no firefox, e veja exatamente qual é o erro de javascript que acontece (no Javascript console).

E ai, Fábio… matou mais uma!

Parece ser um bug da implementação do JSF mesmo, eu estava usando a versão 1.1.01, eu testei com a implementação MyFaces 1.1.3 e tudo funcionou perfeitamente!!

Valeu mais uma vez!

Obrigado…

Olá.

  1. O commandLink tinha problemas com managed Bean request dentro de um datatable, perdia referência. E então era necessário trocar para scope Session;

  2. Problemas com a tag de documento raiz (<t:document>);

parece que agora está ok, só falta testar o item 2.