• Struts2 拦截器 配置IFrame页面跳转


    博客原文:http://hi.baidu.com/kangjun118/item/6056bd22e1af3b012a0f1c6b

    我做了一个后台管理, 页面用 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>
    View Code

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

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

     

    解决办法:

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

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

    2)新建一个中间页面,如下:

    relogin.jsp

    <html> 
    
        <head>
    
        <title></title> 
    
        <script type="text/javascript"> 
    
            window.top.location='<%=request.getContextPath()%>';   
    
        </script>
    
        </head> 
    
    </html>
    View Code

    然后,在struts.xml里面配置一个全局结果:

    <global-results>   
    
        <result name="relogin" >/jsp/relogin.jsp</result> 
    
    </global-results> 
    View Code

    最后,在拦截器中跳转到这个全局结果

  • 相关阅读:
    一段路
    memcache 键名的命名规则以及和memcached的区别
    浏览器解释网页时乱码
    windows下安装Apache
    巧用PHP数组函数
    程序返回值的数据结构
    Linux如何生成列表
    判断用户密码是否在警告期内(学习练习)
    判断用户的用户名和其基本组的组名是否一致
    sed笔记
  • 原文地址:https://www.cnblogs.com/Jodie/p/3170606.html
Copyright © 2020-2023  润新知