前面3中集成了adminlte
内容使用<div layout:fragment="content" id="content" ></div>
这种方式存在一定的问题;后面还是觉得内容中使用iframe框架比较好
新建一个index.html,作为默认登录后的跳转页面;
index.html内容如下
<!doctype html>
<html lang="en" xmlns:layout="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head >
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap demo</title>
<link rel="stylesheet" href="/static/css/adminlte.min.css">
<link rel="stylesheet" href="/static/css/all.min.css">
<link rel="stylesheet" href="/static/css/highlighter.css">
<link rel="stylesheet" href="/static/css/OverlayScrollbars.min.css">
<link rel="stylesheet" href="/static/css/toastr.min.css">
<script src="/static/js/jquery.min.js"></script>
<script src="/static/js/jquery.overlayScrollbars.min.js"></script>
<link rel="stylesheet" href="/static/bootstraptable/bootstrap-table.min.css">
<link rel="stylesheet" href="/static/bootstraptable/bootstrap-icons.css">
<script src="/static/bootstraptable/bootstrap-table.min.js"></script>
<script src="/static/bootstraptable/bootstrap-table-zh-CN.min.js"></script>
<script src="/static/js/bootbox.min.js"></script>
</head>
<body class="sidebar-mini layout-fixed" style="height: auto;overflow: hidden">
<div class="wrapper">
<div th:include="common/top :: top"></div>
<div th:include="common/left :: left"></div>
<div id="content" class="content-wrapper">
<iframe id="iframe1" src="/home" frameborder="0" width="100%" ></iframe>
</div>
<footer class="main-footer" >
<strong>Copyright © 2014-2021 <a href="https://adminlte.io">AdminLTE.io</a>.</strong>
All rights reserved.
<div class="float-right d-none d-sm-inline-block">
<b>Version</b> 3.2.0
</div>
</footer>
</div>
<div class="modal fade " id="modal1" data-bs-keyboard="false" aria-hidden="true" data-bs-backdrop="static" >
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="model-title">新增</h4>
<button type="button" class="close" onclick="$('#modal1').modal('hide')">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body" style="height: 600px;overflow: hidden" >
<iframe id="modal-iframe" src="/404" frameborder="0" width="100%" height="100%" ></iframe>
</div>
</div>
</div>
</div>
<script src="/static/js/bootstrap.bundle.min.js"></script>
<script src="/static/js/adminlte.min.js"></script>
<script src="/static/js/toastr.min.js"></script>
<script src="/static/js/main.js"></script>
</body>
<script>
//需要设置两次
function setFrameHeight(){
let myFrame = document.getElementById("iframe1");
if(myFrame){
myFrame.style.height = window.innerHeight-114 + "px";
}
}
window.onload = function(){
let myFrame = document.getElementById("iframe1");
//iframe加载的时候需要设置一次
myFrame.onload = function(){
myFrame.style.height = window.innerHeight-114 + "px";
}
//在父页面载入的时候需要设置一次
setFrameHeight()
}
window.addEventListener('resize', function() {
// 当窗口大小改变时,调整页面布局
setFrameHeight()
});
function openDialog(title,url){
$("#model-title").text(title)
$("#modal-iframe").attr("src",url)
$('#modal1').modal().css({
'margin-top': function () {
return 100+'px';
}
});
$('#modal1').modal("show")
}
$("#logout").on("click",function () {
$.getJSON("/sysUser/logout",function (e) {
if(e.code==0)
top.location.href = '/home';
})
})
</script>
</html>
红色为内容展示时的iframe,可通过对iframe ,src的设置实现页面的变化
function fn_target(e){
let url=$(e).attr("data-url")
$('#iframe1').attr("src",url);
}
绿色部分增加了一个统一弹框页面,可以使用统一方法弹出框层
function openDialog(title,url){ $("#model-title").text(title) $("#modal-iframe").attr("src",url) $('#modal1').modal().css({ 'margin-top': function () { return 100+'px'; } }); $('#modal1').modal("show") }
导航栏设置跳转方式
<li class="nav-item"> <a href="javascript:;" data-url="/sysUser/list" onclick="fn_target(this)" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>用户管理</p> </a> </li>