Pergunta

Quero que o usuário seja redirecionado para login.jsp se a "função" armazenada no escopo da sessão não corresponde ao parâmetro de solicitação "AccessRole"

Homepage.jsp

<jsp:include page="Header.jsp">
<jsp:param value="d" name="accessRole" />
</jsp:include>

Header.jsp

<c:if test="${sessionScope.role!=param.accessRole}">
<c:redirect url="Login.jsp"/> 
</c:if>

O código acima não executa o redirecionamento conforme o esperado.

Eu tentei usar o Redirect () e JSP do ExternContext (para a frente no lugar deu003Cc:redirect> , mas nada funciona.

Foi útil?

Solução

Você não pode redirecionar para dentro de um JSP incluir, muitas vezes já é tarde demais. Se você leu os logs do AppServer, deveria ter visto um IllegalStateException: response already committed (Só porque o conteúdo da página pai já foi enviado para a resposta).

A solução real para isso é implementar um Filter que é mapeado no url-pattern cobrindo a página pai.

Outras dicas

JSP inclui não são permitido Para enviar um redirecionamento. Você terá que usar:

<jsp:include.directive file="url"/>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top