Como tratar os caminhos dos actions em uma web app?

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. :?

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

[quote=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".
[/quote]
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

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

[quote=Rafael Steil] <img src="../../images/logo.gif">

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

Rafael[/quote]
É 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.