Response.redirect não funciona dentro do struts

Prezados bom dia,

Sou iniciante em java Web tenho uma dúvida estou usando

o response.Redirect em uma página jsp dessa maneira:

<c:if test="${nivel== ’ ’ || nivel == null}">
<% response.sendRedirect(“pages/sair.jsp”); %>
</c:if>

para restringir o acesso à página caso não tenha feito login.

Estou usando o Struts 1.2 com tiles.

quando chamo a página .jsp direto pela Url http://localhost:8080/pages/top.jsp
funciona normalmente.
, porém quando chamo pela (action pagina.do?.. ) não funciona e não dá nenhum erro,simplesmente
não redireciona.

aguardo vossa ajuda.

grato.

Falae flavio.

Cara não seria melhor fazer esta restrição utilizando um ServletFilter?

Quanto a este problema com o Struts não sei o que possa ser. O mapeamento está correto?

[]'s

O que acontece é que quando vc chama a sua action, a servlet do struts processa e faz request.getRequestDispatcher(“suaUrlConfigurada”).forward(req,res) direcionando para a url que vc configurou no struts-config. Quando chega no JSP vc tenta fazer um redirect e aí acontece o erro. Isso não é permitido pq vc não pode escrever no buffer da pagina 2x, no caso a primeira com o forward e a segunda com seu redirect.

Alberto

e como faria a restrição de segurança direto na action ?

Usa um filtro: http://www.guj.com.br/java.tutorial.artigo.11.1.guj