Temos uma aplicação com a seguinte estrutura:
- Intranet (aplicação)
| - resources (pasta)
|__ stylesheet.css (arquivo de estilo dentro de resources)
|__ image1.gif (imagem dentro de resources)
|
|index.jsp (jsp na raiz)
|changepasswd.jsp (jsp na raiz)
|error.jsp (jsp na raiz)
| - baan (pasta)
|___ os.jsp (jsp dentro de baan)
Todas as imagens e arquivos de estilo estão na pasta “resources”.
A error.jsp é a nossa página de erro padrão, e nela utilizamos alguns itens da pasta resources, como as figuras.
Estes itens são carregados utilizando-se do caminho lógico da aplicação, por exemplo: para as páginas da raíz usamos “resorces/image1.gif”, e para as páginas que estão fora da raiz usamos “…/resources/image1.gif”.
Quando um erro ocorre, todas as demais páginas jsp requisitam a error.jsp.
Toda esta navegabilidade está definida no arquivo de navegação.
O problema é o seguinte:
Quando ocorre um erro em uma página que não está na mesma pasta da error.jsp, a imagem e o arquivo de estilo não são encontrados e o browser não monta a página corretamente.
Isto só ocorre quando a página error.jsp é requisitada através de um erro gerado por uma página que não está no mesmo diretório dela.
Por exemplo, se um erro é gerado pela changepasswd.jsp, a página error.jsp é carregada corretamente.
O que percebemos é o seguinte:
Utilizando nossa estrutura como exemplo, se no processamento da página os.jsp, que está na pasta Baan, um erro é gerado, o sistema redireciona para a página error.jsp, que está na raiz.
No entanto, ao montar a página error.jsp, os objetos que estão na pasta resources estão sendo procurados na pasta baan e não na raiz como deveria acontecer, aí a página é carregada sem esses objetos.
O JSF não está controlando a saída de um diretório quando navega-se entre páginas de diretórios diferentes.
Por acaso alguém já sofreu esse problema??
Como podemos resolvê-lo??
Obrigado