Links em páginas de erro ( <error-page> )

6 respostas
L

Pessoal, tô com uma dúvida aqui e não tô conseguindo sair do lugar.

Se der algum erro na minha aplicação, ou que uma página não exista eu exibo uma página padrão de erro configurada no web.xml

<error-page>
     <error-code>404<*error-code>
      <location>/WEB-INF/naoencontrado.jsp</location>
</error-page>

Pois bem, quero ter um link nessa página que volte à tela inicial da minha aplicação. Então coloco um link nela Voltar a página inicial
Maravilha né? O problema é que as aplicação são criadas como: http://localhost:8080/nomeApp/paginas.jsp
Se eu usar um link como /index.jsp ele irá para http://localhost:8080/index.jsp, que não existe. Alguém sabe como eu corrijo isso sem botar ‘na marretada’ /nomeApp/index.jsp , pra ele ficar independente do nome da aplicação que foi criada??

Obrigado.

6 Respostas

Hayan

fala Lao blz?

Lao, e se o link mando o cliente para a página onde ele estava antes que error 404 ocorre não seria melhor nesse caso?

um abraço

L

Não seria a idéia não Hayan, eu estava querendo mesmo mandar para a página inicial.

Hayan

tudo bem, eu vou colocar duas soluçôes para você :

Caso você quer voltar para mesa página (Untima página antes que o erro ocorre), tem que criar uma session que pega o URL usando javax.servlet.include.request_uri :

<% request.getSession().setAttribute("ultima", request.getRequestURI()); %>
e na página 404.jsp onde tem o link para voltar coloque :
<a href='<%=request.getSession().getAttribute("ultima") %>'>Voltar</a>

se você quer voltar para index.jsp use uma session que pega o context path usando javax.servlet.include.context_path (no seu caso vai pegar : nomeApp ) + /index.jsp

<% request.getSession().setAttribute("last", request.getContextPath()+"/index.jsp"); %>
e o link é mesmo
<a href='<%=request.getSession().getAttribute("ultima") %>'>Voltar</a>

opd: a session tem que estar um tudas as páginas.

um abraço

Hayan

tudo bem, eu vou colocar duas soluçôes para você :

Caso você quer voltar para mesa página (Untima página antes que o erro ocorre), tem que criar uma session que pega o URL usando javax.servlet.include.request_uri :

<% request.getSession().setAttribute("ultima", request.getRequestURI()); %>
e na página 404.jsp onde tem o link para voltar coloque :
<a href='<%=request.getSession().getAttribute("ultima") %>'>Voltar</a>

se você quer voltar para index.jsp use uma session que pega o context path usando javax.servlet.include.context_path (no seu caso vai pegar : nomeApp ) + /index.jsp

<% request.getSession().setAttribute("last", request.getContextPath()+"/index.jsp"); %>
e o link é mesmo
<a href='<%=request.getSession().getAttribute("ultima") %>'>Voltar</a>

opd: a session tem que estar um tudas as páginas.

um abraço

L

Estamos evitando o uso de scriptlets nas nossas JSPs aqui. Só usamos EL.

Não teria nenhuma tag do struts ou alguma configuração do header HTTP que diga meu contexto?

Hayan

nesse caso tu tem que personalizar uma taglib, não vai precisar mais de uma class

um abraço

Criado 11 de junho de 2008
Ultima resposta 12 de jun. de 2008
Respostas 6
Participantes 2