一.连接后端数据库表
create table tb_promission
(
id number primary key,--权限id
text varchar2(100) not null,--权限名称
pid number not null,--权限父级id
icon varchar2(100),--菜单显示的icon
url varchar2(100),--权限资源路径
state number,--状态;该记录是否有效1:有效、0:无效
sort number--排序码
)
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(1,'店铺管理',-1,'','',1,1);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(2,'图书分类管理',-1,'','',1,2);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(3,'图书管理',-1,'','',1,3);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(4,'订单管理',-1,'','',1,4);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(5,'系统设置',-1,'','',1,5);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(6,'店铺添加',1,'','/addshop.jsp',1,6);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(7,'店铺列表',1,'','/shopList.jsp',1,7);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(8,'图书分类添加',2,'','/addBookType.jsp',1,8);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(9,'图书分类列表',2,'','/addBookTypeList.jsp',1,9);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(10,'图书添加',3,'','/addBook.jsp',1,10);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(11,'图书列表',3,'','',1,11);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(12,'所有图书',11,'','/addBookList.jsp',1,12);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(13,'未上架',11,'','/notAvailableBook.jsp',1,13);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(14,'已上架',11,'','/listedBook.jsp',1,14);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(15,'已下架',11,'','/removedBook.jsp',1,15);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(16,'所有订单',4,'','/orderList.jsp',1,16);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(17,'未付款订单',4,'','/UnpaidOrder.jsp',1,17);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(18,'已付款订单',4,'','/PaidOrder.jsp',1,18);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(19,'未收货订单',4,'','/UnconscionedOrder.jsp',1,19);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(20,'已完成订单',4,'','/DoneOrder.jsp',1,20);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(21,'系统设置',5,'','/SystemSettings.jsp',1,21);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(22,'菜单管理',5,'','/MenuManagement.jsp',1,22);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(23,'权限管理',5,'','/PermissionManagement.jsp',1,23);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(24,'用户管理',5,'','/UserManagement.jsp',1,24);
二.index.jsp首页界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 通过include指令引入公共资源 -->
<%@ include file="/static/common/easyui-link.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
console.log(xPath);
</script>
</head>
<body>
<div id="cc" data-options="fit:true" class="easyui-layout" ">
<div data-options="region:'north',title:'欢迎来到德莱联盟后台管理中心',split:true" style="height:100px;"></div>
<div data-options="region:'south',title:'首页尾部',split:true" style="height:100px;">
版权
</div>
<div data-options="region:'west',title:'菜单管理',split:true" style="width:180px;">
<ul id="menuTree">
</ul>
</div>
<div data-options="region:'center',title:'内容'" style="padding:5px;background:#eee;">
<div data-options="fit:true" id="myTabs" class="easyui-tabs" style="width:500px;height:250px;">
</div>
</div>
</div>
<script type="text/javascript">
//加载函数
$(function () {
//实现对属性菜单进行数据绑定
$("#menuTree").tree({
url:xPath+'/PromissionList.do',
//设置点击事件,当点击菜单选项时,右侧会根据需求弹出指定的选项卡以及内容
onDblClick:function(node){//node指的是节点对象
/* console.log(node.text) */
addMyTabs(node);
}
});
});
//封装一个新增选项卡的方法
function addMyTabs(node){
//当点击一级菜单是 无选项卡出现
if(node.id === "-1"){
return;
}
//解决重复选项卡
//通过exists判断选项卡是否存在
let flag=$('#myTabs').tabs('exists',node.text);
if(flag === true){
$('#myTabs').tabs('select',node.text);
return;
}
$('#myTabs').tabs('add',{
//选项卡的标题
title:node.text,
//选项卡的内容
content:"<iframe src = '"+xPath+node.url+"+sb.jsp' width='100%' height='100%''>",
//选项卡的关闭按钮
closable:true,
});
};
</script>
</body>
</html>
三.PromissionListServlet界面
package com.easyui.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.easyui.biz.IPromissionBiz;
import com.easyui.biz.impl.PromissionBiz;
import com.easyui.entity.Promission;
import com.fasterxml.jackson.databind.ObjectMapper;
@WebServlet("/PromissionList.do")
public class PromissionListServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
//获取biz层中生产的数据
IPromissionBiz ipb=new PromissionBiz();
List<Promission> list = ipb.queryPromissionAll(-1);
//实例化JackJSon工具包
ObjectMapper mapper=new ObjectMapper();
String result = mapper.writeValueAsString(list);
//响应
//out
PrintWriter out = response.getWriter();
out.write(result);
out.flush();
out.close();
}
}