Percebi um problema que até antes não tinha visto, existe o componente rich:menuItem do qual podemos utilizar dentro de um dropdown menu e então colocar chamadas para várias telas, inclusive para a operação de logout (que é o meu caso).
Onde ao ser clicado, executa um action que desloga o usuário e sai do sistema, enviando o usuário para a tela de login. Até aí sem problema, desde quando fui fazer um teste no IE, e o menu item não chamava minha ação (executava bem no FireFox e Opera).
percebi que a opção submitMode era uma “responsável” por isso, estando ela setada em ajax, faz com que a ação seja chamada via firefox e opera e ocorre tudo bem, no IE não; mas quando troco para server, executava bem no IE, mas demais browsers não.
Alguém já passou por algo parecido com o menuItem a ser executado corretamente pelo menos no IE e FireFox?
Na verdade, tanto no submitMode para ajax ou server, no IE é executado, porém o método efetuarLogout tem o retorno string para “sair”, esse sair é definido:
No IE, o submitMode ajax executa o método, porém não redireciona segundo o navigation-case, quando troco para server, fica tudo ok, porém desconserta no FireFox. Já até tirei o from-view-id e não resultou em nada.
O chato é que é feito um redirecionamento ao invés de uma chamada ajax, mas pelo menos funciona nos navegadores.[/quote]
Oi luiz, tudo certinho?
O problema do redirect é justamente que ele “refresha” todo o request, inclusive se você adicionar uma mensagem no messages do JSF, essa mensagem não é obtida quando executa um redirect.
POxa, isso realmente é um problema. Mas no meu caso, especificamente, não chega a atrapalhar.
Mas você conseguiu resolver o problema do menu de alguma outra forma?
[quote=Luiz_Gustavo]POxa, isso realmente é um problema. Mas no meu caso, especificamente, não chega a atrapalhar.
Mas você conseguiu resolver o problema do menu de alguma outra forma?
Abraço![/quote]
A solução que consigo perceber até o momento é uma verdadeira gambiarra, parecendo um CSS HACK.
Tenho que perceber qual é o browser corrente, se for IE então não executa ajax mode, se for diferente de IE, executa ajax mode.
Parece que o compoennte de menu do richfaces não trabalha com esses dois padrões de browser ao mesmo tempo, bizarro.