Перенаправление с JSP: включить страницу - PullRequest
0 голосов
/ 21 декабря 2009

Я хочу, чтобы пользователь был перенаправлен на Login.jsp, если «роль», сохраненная в Session Scope, не совпадает с параметром запроса «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>

Приведенный выше код не выполняет перенаправление, как ожидалось.

Я пытался использовать redirect () и jsp: forward для ExternalContext вместо , но ничего не работает.

Ответы [ 2 ]

0 голосов
/ 05 июля 2011

JSP включает не разрешено для отправки перенаправления. Вам придется использовать:

<jsp:include.directive file="url"/>
0 голосов
/ 21 декабря 2009

Нельзя перенаправить внутри JSP-включения, часто уже слишком поздно. Если вы прочитали журналы сервера приложений, вы должны были увидеть IllegalStateException: response already committed (только потому, что содержимое родительской страницы уже отправлено в ответ).

Реальное решение для этого заключается в реализации Filter, который отображается на url-pattern, охватывающем родительскую страницу.

...