Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

duvida sobre faces-redirect=true

Olá a todos, gostaria de saber se o método redirect do getExternalContext tem o mesmo efeito do faces-redirect=true que depois de um post limpa os dados de uma requisição, fazendo um redirecionamento .

exemplos:

return "login?faces-redirect=true";

FacesContext.getCurrentInstance().getExternalContext().redirect("login.xhtml");
3 respostas
solução!

Opa, sim :). O parâmetro faces-redirect só indica que o jsf deve fazer o redirect mesmo :).

entendi, como estou trabalhando com vários folders onde alguns são restritos para determinados usuários, preciso do contextPath + pagina para fazer meu redirecionamento. eu pensei em fazer um método responsável por realizar isso. poderia dar uma olhada no meu método e dizer se da forma que eu fiz está aceitável.

public class Util {
   public static void redirecionarPagina(String pagina) {
        FacesContext context = FacesContext.getCurrentInstance();
        String url = context.getExternalContext().getRequestContextPath();
        try {
            context.getExternalContext().redirect(url + "/" + pagina);
        } catch (IOException ex) {
            Logger.getLogger(Util.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

dessa forma toda vez que fosse preciso fazer um redirecionamento era apenas chamar o método passando o parâmetro:

Util.redirecionarPagina("restrito/pessoa.xhtml");

Para mim está ok, boaaa!