Como tratar os caminhos dos actions em uma web app?

4 respostas
J

Galera,
estou tentando organizar uma app em diretórios, mas os caminhos dos actions dos formulários ficam loucos! Dependendo da forma de acesso a uma página (direta, via link ou via servlet) a mesma pagina pode não ser encontrada, ser mostrada sem o css ou ser mostrada normalmente. …
Eu não estou conseguindo entender a regra de funcionamento por trás disso. Alguém poderia me explicar ou indicar um texto que explique?
Estou tendo dificuldades particulares com uma página que está em um subdiretório e cujos actions são para ela mesma ou para um Servlet que faz algo e depois redireciona para a mesma página.
Ela funcionava normalmente quando estava na raiz da app, mas quando eu coloquei num diretório, ela endoidou.
Agradeço qualquer luz para entender essa confusão. :?

4 Respostas

Rafael_Steil

Creio que o problema que voce esta tendo eh em relacao a “diretorios virtuais” Olhe a url desse topico e entenda do que estou falando… nao existe o diretorio “posts/list” em disco".

Para contornar isso, as suas imagens, css e afins precisam partir da raiz. Ou seja, ao inves de fazer

<img src="images/logo.gif">

voce tem que fazer

<img src="/images/logo.gif">

O que faco no JForum, ainda, eh adicionar o nome do contexto via programacao. O template fica algo como isso:

<img src="${contextPath}/images/logo.gif">

onde “contextPath” eh o nome do contexto do servlet.

Rafael

J

Rafael Steil:
Creio que o problema que voce esta tendo eh em relacao a “diretorios virtuais” Olhe a url desse topico e entenda do que estou falando… nao existe o diretorio “posts/list” em disco".

Mas os meus diretórios são reais! isso porque eu quero organizar a bagunça, ao invés de ficar com zilhoes de jsps no diretorio raiz.

Quanto ao caminho absoluto,

desgraça total… :cry: Mudando o estilo para

&lt;link rel='stylesheet' href='/estilo.css' type='text/css' /&gt;

Nenhuma página mais enxerga o css, nem na raiz!

Esse contextPath tem que ser hard-coded? Eu não queria congelar o contexto da app…

Valeu

Rafael_Steil

Um detalhe: se voce tem algum contexto, simplesmente colocar “/” nao funciona, ja que vai cair na raiz do server. Nesse caso voce vai precisar sim colocar o nome do contexto.

Agora, caso voce saiba de antemao a estrutura de diretorios, pq simplesmente nao faz algo como

<img src="../../images/logo.gif">

Se os diretorios nao ficarem mudando, o que te impede de referenciar assim?

Rafael

J

Rafael Steil:
<img src="../../images/logo.gif">

Se os diretorios nao ficarem mudando, o que te impede de referenciar assim?

Rafael


É que tem paginas que ora são acessadas via link normal, ora por um servlet, e ai os caminhos relativos vão para o beleléu.
Estou resolvendo com essa gracinha :

${pageContext.request.contextPath}

em todos os caminhos…
Valeu.

Criado 29 de abril de 2005
Ultima resposta 29 de abr. de 2005
Respostas 4
Participantes 2