0

如果存储在 Session Scope 中的“角色”与请求参数“accessRole”不匹配,我希望将用户重定向到 Login.jsp

主页.jsp

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

页眉.jsp

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

上面的代码没有按预期执行重定向。

我尝试使用 ExternalContext 的 redirect() 和 jsp:forward 代替 <c:redirect>,但没有任何效果。

4

2 回答 2

0

您不能在 JSP 包含中重定向,这通常已经太晚了。如果你已经阅读了 appserver 日志,你应该已经看到了一个IllegalStateException: response already committed(只是因为父页面的内容已经被发送到了响应中)。

真正的解决方案是实现一个Filter映射在url-pattern覆盖父页面上的。

于 2009-12-21T12:36:47.307 回答
0

JSP 包含不允许发送重定向。你必须使用:

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