0

セッションスコープに格納された「ロール」がリクエストパラメータ「accessRole」と一致しない場合、ユーザーを Login.jsp にリダイレクトさせたい

ホームページ.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>

上記のコードは、期待どおりにリダイレクトを実行しません。

<c:redirect> の代わりに ExternalContext の redirect() と jsp:forward を使用しようとしましたが、何も機能しません。

4

2 に答える 2

0

JSP インクルードはリダイレクトを送信できません以下を使用する必要があります。

<jsp:include.directive file="url"/>
于 2011-07-05T19:03:27.857 に答える
0

JSP インクルード内でリダイレクトすることはできません。多くの場合、すでに手遅れです。appserver ログを読んだことがある場合は、IllegalStateException: response already committed(親ページのコンテンツが既に応答に送信されているという理由だけで) が表示されているはずです。

これに対する実際の解決策は、親ページのカバーにFilterマップされるを実装することです。url-pattern

于 2009-12-21T12:36:47.307 に答える