Struts2 拦截器 配置&nb…

我做了一个后台管理, 页面用 table 中嵌入 iframe 做的.
后台首页分3个部分, top.jsp 顶部的页面.
  left.jsp 左侧的菜单页面.
  right.jsp 右侧显示类容页面.
在left.jsp 中 有一个 iframe: <iframe id="leftMenuFrame" name="leftMenuFrame" src="<%=request.getContextPath() %>/backManage/toLeftJsp.shtml"/>

在right.jsp 中 也有一个 iframe: <iframe id="leftMenuFrame" name="leftMenuFrame" src="<%=request.getContextPath() %>/backManage/toRightJsp.shtml"/>

我在这两个 action 的配置文件中都配置了拦截器.

<package name="backManage" extends="tour" namespace="/backManage">
  <!-- 到后台左侧页面 -->
  <action name="toLeftJsp" class="BackManageAction" method="toLeftJsp">
  <result name="success">/jsp/left.jsp</result>
  <interceptor-ref name="loginAdminInterceptor"></interceptor-ref>
  <interceptor-ref name="defaultStack"/>
  </action>
  <!-- 到后台右侧页面 -->
  <action name="toRightJsp" class="BackManageAction" method="toRightJsp">
  <result name="success">/jsp/backRight.jsp</result>
  <interceptor-ref name="loginAdminInterceptor"></interceptor-ref>
  <interceptor-ref name="defaultStack"/>
  </action>
  </package>

当 session 失效之后再去刷新页面, 于是这两个 action 都跳到登陆页面. 这样就出现了两个登陆页面.

要解决的问题就是在session失效之后, 跳转到登陆页面. 而不是一个页面中出现两个登陆页面.


解决办法:1)

在你的login.jsp中,加一段脚本

JScript code
if(self.location!=top.location) { top.location.href=self.location.href;}

 

2)

新建一个中间页面,如下:relogin.jsp
<html>
<head>
<title></title>
<script type="text/javascript">
window.top.location='<%=request.getContextPath()%>';
  </script>
</head>
</html>,
然后,在struts.xml里面配置一个全局结果:
<global-results>
  <result name="relogin" >
/jsp/relogin.jsp
  </result>
</global-results>
最后,在拦截器中跳转到这个全局结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值