Question

Je veux que l'utilisateur soit redirigé vers Login.jsp si le « rôle » stocké dans la session Champ d'application ne correspond pas à la demande du paramètre « 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>

Le code ci-dessus ne fonctionne pas la redirection comme prévu.

J'ai essayé d'utiliser la redirection de ExternalContext () et jsp: en avant la place de ., Mais rien ne fonctionne

Était-ce utile?

La solution

Vous ne pouvez pas rediriger dans une JSP comprennent, il est souvent déjà trop tard. Si vous avez lu les journaux appserver, vous auriez dû voir un IllegalStateException: response already committed (juste parce que le contenu de la page parent est déjà envoyé à la réponse).

La vraie solution pour cela est de mettre en œuvre un Filter qui est mis en correspondance sur la url-pattern couvrant la page parent.

Autres conseils

JSP comprend ne sont pas autorisés pour envoyer une redirection. Vous devrez utiliser:

<jsp:include.directive file="url"/>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top