JSF +WelcomeFileList = gambi

Oi gente,

to fazendo umas coisinhas aqui no JSF e percebi que:
se eu coloco como welcomefile digamos … index.jsp, na hora que eu acessar o diretorio /aplicacao/ ele redireciona mesmo para o index.jsp :slight_smile: rssrsrs
e como o index.jsp nao passou pelo servlet do Faces ( que está mapeado em *.jsf ) me dá um erro :S
ai eu procurei na net, o que mais o povo faz é assim: colocar com welcomefile, digamos um… index.html em CADA PASTAAA e este redireciona para o index.JSF contido na pasta …

nao achei nem um pouco legal essa historia de botar uma pagina em cada diretorio só pra ficar redirecionando para .jsf quando a requisição vem em .jsp

aí eu fiz um filtro para interceptar as requisições as welcomefiles, se chegar uma requisição a qualquer index.jsp, ele redireciona para index.jsf para que esta processe.

eis o filtro:

private FilterConfig fc;
  private final String welcomePages="index.jsp,default.jsp";

	public void destroy() {
		
	}

	
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		
		
				
		String requisicao = ((HttpServletRequest)request).getServletPath();
		String pagina = requisicao.substring(requisicao.lastIndexOf("/")+1);
		
		Scanner s = new Scanner(welcomePages);
		s.useDelimiter(",");
		RequestDispatcher rd =null;
		laco: 
			while(s.hasNext()){
			
			if(s.next().equals(pagina)){
				
				rd = request.getRequestDispatcher(pagina.replace(".jsp", ".jsf"));
				
				break laco;
			}
			
			}
      
		if(rd != null){
			rd.forward(request, response);
		}
		else{
			chain.doFilter(request, response);
		}
		
		
	}

	
	public void init(FilterConfig fConfig) throws ServletException {
		this.fc = fConfig;
	}

(obs: esse filtro é mapeado em *.jsp somente em request … se ele for mapeado em dispatch irá entrar em loop quando o FacesServlet chamar o .jsp)

na string welcomefiles é que eu ponho a lista de arquivos que serao redirecionados, nao to com saco agora hauhaau, mas depois eu posso ler esses arquivos lah do welcomefilelist do web.xml

enfim a PERGUNTA…

essa é a melhor solução?

eu acho … alias tenho certeza … que isso é melhor q botar um arquivo de redirecionamento em cada diretorio

mas há outra solução melhor??
na net só achei essas gambi ahauhua nenhum recurso pronto

Se eu não me engano isso ocorre só com o Tomcat, correto?

Acho que se usar o Glassfish por exemplo, ele encontra direto o “index.jsf”. (Palpite apenas).