Caros,
Acontece algo meio estranho com o projeto que estou trabalhando em JSF,
eu tenho o seguinte código:
if(flag){
FacesContext context = FacesContext.getCurrentInstance();
HttpSession sessao = (HttpSession) context.getExternalContext().getSession(true);
sessao.setAttribute("usuario", objColaborador);
return "/principal/index.jsf";
} else {
ele me redireciona para um diretorio principal com minha index e isso funciona, ele abre a página, o problema eh que na url ele mantem a URL anterior, ou seja, Login.jsf. Alguem sabe o porque naum aparece
http://localhost/NomeDoProjeto/principal/index.jsf?
Cara ja sofri com esse problema tambem é acredito não ter uma solução pratica a não ser com javascript mas ai o direcionamento tem que ficar na sua pagina não nos metodos, uma ideia que te dou é usar um iframe na sua pagina principal para que mantenha sempre a mesma url no browser ninguem vai ver a url da pagina em que esta…
Valeu
Wolmir Garbin
Coloque a tag dentro do arquivo Faces-config.xml(arquivo de configuração do jsf), isso atualizará sua url em toda a requisição.
Exemplo:
<navigation-rule>
<from-view-id>/admin/*</from-view-id>
<navigation-case>
<from-outcome>formProduto</from-outcome>
<to-view-id>/admin/formProduto.jsp</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
Valeu leonardodar, não sabia disso e ja me bati bastante por causa disso…
Vivendo e aprendendo hehehe
Valeu!
Wolmir Garbin
Caro, o lance do redirect no xml eh a solução pra url, mas ele causa uns problemas adicionais, como o fim do Mbean, reinstanciando o objeto e zerando seu conteudo. uso jsf 2.0 e naum uso mais o xml. mas vou fazer uma divisão aqui. quando precisar do MB eu dou dispacher, quando naum precisar mais dou redirect pra mudar a url e zera-lo, naum sei se e o correto a se fazer.