frame框架

1、主界面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<jsp:include page="/jsp/other/isLoginout.jsp" ></jsp:include>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="../js/jquery.js" type="text/javascript"></script>
<script type="text/javascript" src="../js/common/html5.js"></script>

<script type="text/javascript">

function logOff () {
$.ajax({
url:'../updateOnline.action',
type:'post',    
dataType:'json',
success:function(flag){
if(flag){

}else{

}
},    
error:function(){

}
});

} 
</script>
</head>
<frameset cols="207,*" frameborder="no" border="0" framespacing="0" scrolling="yes" onbeforeunload="logOff()">
  <frame src="<%=request.getContextPath()%>/jsp/leftmenu.jsp" frameborder="0" name="leftFrame" scrolling="no" noresize="noresize" id="leftFrame" /> 
  <frameset rows="40,*" frameborder="no" border="0" framespacing="0">
    <frame src="<%=request.getContextPath()%>/jsp/top.jsp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" frameborder="0"></frame>
    <frame src="<%=request.getContextPath()%>/jsp/main.jsp" name="mainFrame" scrolling="yes" noresize="noresize" id="mainFrame" frameborder="0"></frame>
  </frameset>
</frameset>
</html>

2、当加载上述界面时就会加载对应的jsp:例如leftmenu.jsp。

3、显示的jsp界面要在mainFrame的frame中,需要使用target属性:

  <a onclick='addCss(this)' target='mainFrame' href='"+url2+">"+name+</a>

4、刷新某一个frame时:

  window.parent.frames['leftFrame'].location.reload();

5、当session失效时,后台通过拦截器拦截到url跳转到login.jsp界面时,由于此时frame没有退出,连接指向mainFrame窗口,会出现窗口叠加现象,通过javascript解决方法如下:

//左边菜单栏地址的target属性指的是mainFrame
if(window.top!=window){
        window.top.location="login.jsp";
    }

6、将页面加入到mainFrame中:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="js/common/jquery-1.9.1.min.js" type="text/javascript"></script>
<style type="text/css">
body {
    margin: 0px;
    padding: 0px;
    background: url(../img/leftbj.gif) repeat-y;
}

ul li {
    list-style: none;
}

#leftDiv {
    width: 100%;
    overflow: hidden;
    display: block;
    height: 100%;
    margin-top: 32px;
}

#leftDiv ul li span {
    font-size: 14px;
    background: url(../img/navbj01.jpg) no-repeat;
    height: 35px;
    display: inline-block;
    line-height: 35px;
    width: 100%;
    padding-left: 25px;
    color: white;
}

#leftDiv ul li {
    margin-left: -40px;
    width: 207px;
}

#leftDiv ul li ul li {
    line-height: 28px;
    height: 28px;
    width: 207px;
    background-color: #336f9c;
    border-bottom: 1px solid #4183b4;
}

#leftDiv ul li ul li a {
    text-decoration: none;
    cursor: pointer;
    font-size: 13px;
    padding-left: 50px;
    color: white;
}

#leftDiv ul li ul li a:hover {
    text-decoration: underline;
}
</style>
<script type="text/javascript">
    $(function() {
        $("#leftDiv>ul>li>span").css("cursor", "pointer").click(function() {
            $(this).siblings("ul").toggle();
        });
        $("#leftDiv>ul>li>ul>li a").click(function() {
            $("#leftDiv>ul>li>ul>li a").css({
                color : "white"
            });
            $(this).css({
                color : "#ffc600"
            });
        });
    });
</script>
</head>
<body>
    <div id="leftDiv">
        <ul>
            <li><span>统计数据</span>
                <ul>
                    <li><a href="user/list.do" target="mainFrame">用户列表</a>
                    </li>
                    <li><a href="admin/auth.do" target="mainFrame">权限列表</a>
                    </li>
                    
                </ul>
       </
li>
        ....
</ul> </div> </body> </html>
原文地址:https://www.cnblogs.com/lbangel/p/3091006.html