1. 前言
这个时代就是互联网发展最好的时代,无论是资源还是框架都是层出不穷,作为一名开发人员,如何避免重复造轮子就变成一项尤为重要的技能。本篇我将介绍Github Star量将近16k的一个开源管理框架AdminLTE。
2. AdminLTE
这是AdminLTE的Github地址。
这是AdminLTE的官网地址。
相关详细介绍请阅读官方文档。
3. 引入AdminLTE
-
首先到Github下载最新的开源项目。
-
因为AdminLTE项目是基于BootStrap的所以项目还需要引入BootStrap的文件。
-
拷贝下图中的文件到项目静态资源文件内。
- 新建main.jsp。并将官方的示例代码starter.html拷贝到main.jsp中,然后根据自己的需求进行相应的更改。
main.jsp
<%--
Created by IntelliJ IDEA.
User: alibct
Date: 2017/3/9
Time: 下午2:14
Desc: 半暖商城-后台管理系统
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
Long administratorId = (Long) session.getAttribute("administratorId");
String administratorName = (String) session.getAttribute("administratorName");
Integer privilegeLevel = (Integer) session.getAttribute("privilegeLevel");
if (null == administratorId) {
response.sendRedirect(request.getContextPath() + "/signIn");
return;
}
%>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="shortcut icon" href="<%=request.getContextPath()%>/static/images/favicon.ico">
<title>半暖商城-后台管理系统</title>
<%--Tell the browser to be responsive to screen width--%>
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link rel="stylesheet" href="<%=request.getContextPath()%>/static/css/bootstrap.min.css">
<link rel="stylesheet" href="<%=request.getContextPath()%>/static/css/font-awesome.min.css">
<link rel="stylesheet" href="<%=request.getContextPath()%>/static/css/ionicons.min.css">
<link rel="stylesheet" href="<%=request.getContextPath()%>/static/css/AdminLTE.min.css">
<%--
AdminLTE Skins. We have chosen the skin-blue for this starter
page. However, you can choose any other skin. Make sure you
apply the skin class to the body tag so the changes take effect.
--%>
<link rel="stylesheet" href="<%=request.getContextPath()%>/static/css/skin-red-light.min.css">
<%--HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries--%>
<%--WARNING: Respond.js doesn't work if you view the page via file://--%>
<%--[if lt IE 9]--%>
<%--<script src="../../static/js/html5shiv.min.js"></script>--%>
<%--<script src="../../static/js/respond.min.js"></script>--%>
<%--[endif]--%>
</head>
<%--
BODY TAG OPTIONS:
=================
Apply one or more of the following classes to get the
desired effect
|---------------------------------------------------------|
| SKINS | skin-blue |
| | skin-black |
| | skin-purple |
| | skin-yellow |
| | skin-red |
| | skin-green |
|---------------------------------------------------------|
|LAYOUT OPTIONS | fixed |
| | layout-boxed |
| | layout-top-nav |
| | sidebar-collapse |
| | sidebar-mini |
|---------------------------------------------------------|
--%>
<body class="hold-transition skin-red-light sidebar-mini">
<div class="wrapper">
<%--顶部导航条--%>
<header class="main-header">
<a class="logo" href="#">
<span class="logo-mini"><b>半</b>暖</span>
<span class="logo-lg"><b>S</b>emi<b>W</b>arm</span>
</a>
<nav class="navbar navbar-static-top" role="navigation">
<a class="sidebar-toggle" data-toggle="offcanvas" href="#" role="button">
<span class="sr-only">Toggle navigation</span>
</a>
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
<li class="dropdown user user-menu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<img class="user-image" src="<%=request.getContextPath()%>/static/images/user_logo.png"
alt="User Image">
<span class="hidden-xs"><%=administratorName%></span>
</a>
<ul class="dropdown-menu">
<li class="user-header" style="color: white">
<img class="img-circle" src="<%=request.getContextPath()%>/static/images/user_logo.png"
alt="User Image">
<p style="color: white">
<%=administratorName%>
</p>
<small>权限等级</small>
<%=privilegeLevel%>
</li>
<li class="user-body">
<div class="row">
<div class="col-xs-4">
<%--消息图标--%>
<ul class="nav navbar-nav">
<li>
<a href="#">
<i class="fa fa-envelope-o"></i>
<span class="label label-success">4</span>
</a>
</li>
</ul>
</div>
<div class="col-xs-4">
<%--通知图标--%>
<ul class="nav navbar-nav">
<li>
<a href="#">
<i class="fa fa-bell-o"></i>
<span class="label label-warning">10</span>
</a>
</li>
</ul>
</div>
<div class="col-xs-4">
<%--任务图标--%>
<ul class="nav navbar-nav">
<li>
<a href="#">
<i class="fa fa-flag-o"></i>
<span class="label label-danger">9</span>
</a>
</li>
</ul>
</div>
</div>
</li>
<li class="user-footer">
<div class="pull-left">
<%--设置界面--%>
<a class="btn btn-default btn-flat" href="#">设 置</a>
</div>
<div class="pull-right">
<%--退出登录按钮--%>
<a class="btn btn-default btn-flat" href="<%=request.getContextPath()%>/signIn">退
出</a>
</div>
</li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
<%--左侧导航栏--%>
<aside class="main-sidebar">
<section class="sidebar">
<div class="user-panel">
<div class="pull-left image">
<img class="img-circle" src="<%=request.getContextPath()%>/static/images/user_logo.png"
alt="User Image">
</div>
<div class="pull-left info">
<p><%=administratorName%>
</p>
<a href="#"><i class="fa fa-circle text-success"></i> 在线</a>
</div>
</div>
<%--搜索表单--%>
<form class="sidebar-form" action="#" method="get">
<div class="input-group">
<input class="form-control" name="txtSearch" type="text" title="请输入搜索内容">
<span class="input-group-btn">
<button class="btn btn-flat" id="btnSearch" name="btnSearch" type="submit"><i
class="fa fa-search"></i></button>
</span>
</div>
</form>
<ul class="sidebar-menu">
<%--主页--%>
<li class="active">
<a href="<%=request.getContextPath()%>/main">
<i class="fa fa-home" style="font-size: larger"></i>
<span>主页</span>
</a>
</li>
</ul>
</section>
</aside>
<%--主要内容区--%>
<div class="content-wrapper">
<section class="content-header">
<h1>
主 页
<small>后台管理</small>
</h1>
<ol class="breadcrumb">
<li class="active">
<a href="<%=request.getContextPath()%>/main"><i class="fa fa-home"></i> 主页</a>
</li>
</ol>
</section>
<!-- 内容区域 -->
<section class="content">
<!-- 页面内容 -->
</section>
</div>
</div>
<%--引用文件--%>
<script src="<%=request.getContextPath()%>/static/js/jquery.min.js"></script>
<script src="<%=request.getContextPath()%>/static/js/bootstrap.min.js"></script>
<script src="<%=request.getContextPath()%>/static/js/app.min.js"></script>
</body>
</html>
以上是根据我的项目修改之后的主要框架代码,仅供参考。每个部分都有相应的注释,如果还有看不懂的地方,请建议仔细阅读官方示例。
以上的简单配置之后就可以运行了,下面提一些简单的注意点。
-
<!DOCTYPE html>
一定要添加,否则可能会出现兼容性问题。 - 每一个界面都必须拷贝以上的代码,并在内容区域添加自定义内容。(这个还是有点麻烦的)
- 如果需要使用官方的插件,请自行阅读官方文档。