首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在不同的浏览器中加载相同的jsp?

在不同的浏览器中加载相同的jsp?
EN

Stack Overflow用户
提问于 2012-09-20 10:29:08
回答 1查看 173关注 0票数 0
代码语言:javascript
代码运行次数:0
运行
复制
<sec:authorize ifAnyGranted="<%=dRoles%>">
    <meta http-equiv="REFRESH" content="0;url=public/First.jsp">
</sec:authorize>

<sec:authorize ifAnyGranted="<%=aRoles%>">      
      <meta http-equiv="REFRESH" content="0;url=public/Second.jsp">
</sec:authorize>

<sec:authorize ifAnyGranted="<%=bRoles%>">  
    <meta http-equiv="REFRESH" content="0;url=public/Third.jsp">
</sec:authorize>

我在用弹簧保安。登录成功后,(default-target-url="/Startup.jsp).加载了Startup.jsp --我的Startup.jsp中有上面的代码。我使用的是spring安全标签。考虑到用户可以访问上面所有的3个jsps。的问题是,在IE7中,First.jsp是加载的,但在其他浏览器中,Third.jsp被加载了。我如何在两个浏览器中显示相同的jsp?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-20 10:38:00

我猜您所处的情况是用户在dRoles中有角色,在bRoles中也有角色,因此您的代码会向浏览器发送两种不同的元刷新。

首先,不要使用元刷新,而是使用真正的重定向或转发(这不应该在JSP中完成,而应该在控制器、过滤器或servlet中完成)。

如果您真的想继续使用JSP解决方案,那么我想这样的方法应该会奏效:

代码语言:javascript
代码运行次数:0
运行
复制
<c:set var="refreshSent" value="${false}"/>

<sec:authorize ifAnyGranted="<%=dRoles%>">
    <meta http-equiv="REFRESH" content="0;url=public/First.jsp">
    <c:set var="refreshSent" value="${true}"/>
</sec:authorize>

<sec:authorize ifAnyGranted="<%=aRoles%>">
    <c:if test="${!refreshSent}">      
        <meta http-equiv="REFRESH" content="0;url=public/Second.jsp">
        <c:set var="refreshSent" value="${true}"/>
    </c:if>
</sec:authorize>

<sec:authorize ifAnyGranted="<%=bRoles%>">  
    <c:if test="${!refreshSent}">
        <meta http-equiv="REFRESH" content="0;url=public/Third.jsp">
        <c:set var="refreshSent" value="${true}"/>
    </c:if>
</sec:authorize>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12510756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档