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

Redirecionamento problema.

Galera do Alura tudo em paz? Como estão os preparativos para o final de ano, muitos pontos de função? rs

Estou com um probleminha.

Eu criei um projeto JSF onde as páginas estão organizadas assim: admin/pages admin/main admin/template.

E meu web.xml está assim:

[code] <?xml version="1.0" encoding="UTF-8"?>

ararazul

/admin/index.xhtml

Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet .xhtml Faces Servlet .jsf Faces Servlet .faces Faces Servlet /faces/

[/code]

E criei uma classe para encapsular o redirecionamento de acordo com o caso de uso.

[code] package br.com.ararazul.util;

import java.io.IOException;

import javax.faces.context.FacesContext;

/* Classe responsável por abstrair as navegações do Sistema @author Leandro Gomes / public class NavigationUtil {

public static final String PAGESFOLDER = "admin"; public static final String INITIALPAGE = "index";

/* Método responsável por forçar o redirecionamento para uma determinada página no contexto do caso de uso em questão @author Hugo Sousa @param casoDeUso @param pagina @throws IOException / public static void redirecionar(String casoDeUso, String pagina) {

FacesContext facesContext = FacesContext.getCurrentInstance();

String contexto = facesContext.getExternalContext().getContextName(); try { if(pagina.equals(INITIALPAGE)) { facesContext.getExternalContext().redirect("/" + contexto); } else { facesContext.getExternalContext().redirect("/" + contexto + "/" + PAGESFOLDER + "/" + casoDeUso + "/" + pagina + ".xhtml"); } } catch (IOException e) { e.printStackTrace(); } }

}

[/code]

Só que há um loop no redirecionamento sempre que acesso a aplicação. Eu usei apenas uma chamada a um método de um controller para chamar a index no menu do sistema: #{megasenaController.index()}. O navegador apenas dá: Redirecionamento incorreto e no console não aparece nada.

Mas quando tiro essa chamada a página carrega normalmente.

Alguém poderia me ajudar, já tem uma semana que pesquiso e não acho resposta?

2 respostas

Como faço para excluir uma pergunta?

solução!

Oi Hugo,

Para conseguir o caminho do contexto inicial, eu utilizo o getRequestContextPath(), da uma olhada nele.

Posta o método index aqui em todo caso, aquele () dentro da EL, não deve ser necessario, não tenho certeza se influencia em alguma coisa também.