动吧项目菜单模块13

该博客详细介绍了使用Java进行菜单管理的实现过程,包括菜单的业务分析、数据库设计、菜单查询、添加、修改页面数据呈现及更新。重点讨论了Ztree加载菜单树的方法,以及在服务端的Dao、Service和Controller层的设计与实现。
摘要由CSDN通过智能技术生成

菜单管理(增Ztree的加载,删,改操作)

菜单管理页面是采用树结构(TreeGrid)方式进行呈现.
菜单新增页面采用ztree的方式进行呈现

菜单业务分析设计

背景分析

几乎所有软件都需要一个操作界面,通过界面中的一些选项或按钮操作具体的业务,这些选项和按钮我们通常称之为菜单.菜单是资源外在的一种表现形式,通过菜单操作我们系统中的资源.

业务设计分析

在数据库对应的表中设计并存储所有菜单信息,每个菜单可能都有一个对应的url,基于这个url可以找到对应的资源,进而可以访问和操作这些资源.其具体表的设计如下:
在这里插入图片描述

业务原型设计分析

基于菜单需求设计菜单的列表页面,如图所示:
在这里插入图片描述
基于菜单需求设计菜单编辑页面,如图所示:
在这里插入图片描述

业务核心API设计分析

Pojo (SysMenu)
Dao (SysMenuDao)
Service (SysMenuService,SysMenuServiceImpl)
Controller (SysMenuController)

菜单数据查询设计及实现

业务分析

将数据库中菜单(SysMenu)表中的信息查询出来,然后在客户端以树结构(TreeGrid)方式进行呈现.

服务端设计及实现

Pojo对象设计

通过此对象封装菜单相关信息
在这里插入图片描述

Dao 接口及方法设计

定义菜单数据接口及数据查询方法
在这里插入图片描述
创建SysMenuMapper.xml文件并基于菜单查询方法定义SQL映射
在这里插入图片描述

Service接口及方法设计

第一步:定义菜单业务接口,关键代码如下
在这里插入图片描述
第二步:定义菜单业务接口的实现类,关键代码如下
在这里插入图片描述

Controller 类及方法设计

创建SysMenuController类型,通过此类型对象处理客户端的菜单请求
在这里插入图片描述

菜单添加页面菜单树的加载

服务端设计及实现

Dao接口方法定义

在SysMenuDao中定义查询菜单信息的方法及sql映射
@Select(“select id,name,parentId from sys_menus”)
public List findZtreeMenuNodes();

Service接口方法定义及实现

第一步:在SysMenuService接口中添加菜单节点查询方法,关键代码如下
public List findZtreeMenuNodes();
第二步:在SysMenuServiceImpl类中添加菜单节点查询方法的具体实现,关键代码如下
public List findZtreeMenuNodes(){
return sysMenuDao.findZtreeMenuNodes()
}

Controller类中方法设计及实现

第一步:在SysMenuController类中添加处理查询菜单节点信息的方法,关键代码如下:
@GetMapping(“doFindZtreeMenuNodes”)
public JsonResult doFindZtreeMenuNodes(){
return new JsonResult(sysMenuService.findZtreeMenuNodes());
}

菜单数据添加设计及实现

服务端设计及实现

Dao 接口方法定义

第一步:在SysMenuDao中添加向数据库新增菜单信息的方法
int insertObject(SysMenu entity);
第二步:在映射文件SysMenuMapper.xml中添加insert元素
在这里插入图片描述

Service 接口方法设计及实现

第一步:在SysMenuService接口中添加新增菜单的方法,关键代码如下:
int saveObject(SysMenu entity);
第二步:在SysMenuServiceImpl实现类中重写接口方法,关键代码如下:
在这里插入图片描述

Controller类中方法设计及实现

第一步:在SysMenuController中添加处理新增菜单请求的方法,关键代码如下:
在这里插入图片描述
说明:假如控制层方法参数使用了@RequestBody描述,关键代码如下:
在这里插入图片描述

菜单修改页面数据的呈现

列表页面数据的绑定

菜单列表页面数据呈现实现,底层的数据绑定,绑定的目的是为后续获取提供便利。
在这里插入图片描述

修改按钮事件处理

在这里插入图片描述

菜单页面数据更新设计及实现

服务端设计和实现

Dao 方法设计和实现

第一步:在SysMenuDao接口中添加菜单数据更新方法,关键代码如下:
int updateObject(SysMenu entity);
第二步:在SysMenuMapper.xml文件中添加SQL更新映射,关键代码如下:
在这里插入图片描述

Service 方法设计和实现

第一步:在SysMenuService接口中添加菜单更新方法,关键代码如下
int updateObject(SysMenu entity);
第二步:在SysMenuServiceImpl类中添加菜单更新方法的具体实现,关键代码如下:
public int updateObject(
SysMenu entity){
return sysMenuDao.updateObject(entity);
}

Controller方法设计及实现

在SysMenuController中添加更新方法,关键代码如下:
在这里插入图片描述
假如客户端向服务端传递的数据为json格式的数据,服务端方法参数需要使用@RequestBody进行描述,关键代码如下:
在这里插入图片描述

总结(Summary)

重难点分析

数据表的设计(表中有哪些字段)
菜单列表数据查询(左外关联)
菜单数据封装的设计(SysMenu,Node,JsonResult)
菜单数据的呈现(TreeGrid,Ztree)-知道有这样的插件即可(用时参考官网demo)

FAQ分析

如何理解项目中的菜单?(菜单是资源的外在表现形式,通过菜单操作系统资源)
菜单表中都有哪些字段?
菜单数据的呈现是如何实现的?
菜单数据写入到数据库是乱码?(首先检测服务端收到的是什么,url中配置编码了吗?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值