生成代码之后,需要为管理系统添加菜单,才可以让新增加的业务显示到页面上,添加菜单有两种方式:
**第一种**为手动添加菜单,依次点击`系统管理`\->`菜单管理`\->`点击添加`,打开添加页面,如下
![image_1c4kcll604kcn1dd6u1160168b2n.png-54.2kB](https://img-blog.csdnimg.cn/20181228174636840)
这里需要注意如下几点:
> * `请求地址`需要和Controller中的RequestMapping的值一致
> * `排序`为同层级菜单中显示菜单的顺序
> * `父级编号`的选择可以更改菜单插入的位置
> * `图标`可以从H+的资源库中获取
> * 因为菜单管理不单单是对管理系统中的菜单管理,也包含权限的管理,所以需要选择是否是菜单这个选项
**第二种**添加菜单的方式为直接执行代码生成中的sql脚本,默认生成的sql文件在`src/main/java`目录下,如下所示
```
INSERT INTO `guns`.`sys_menu` (`id`, `code`, `pcode`, `pcodes`, `name`, `icon`, `url`, `num`, `levels`, `ismenu`, `tips`, `status`, `isopen`) VALUES ('956388083570089986', 'order', '0', '[0],', '订单管理', '', '/order', '99', '1', '1', NULL, '1', '0');
INSERT INTO `guns`.`sys_menu` (`id`, `code`, `pcode`, `pcodes`, `name`, `icon`, `url`, `num`, `levels`, `ismenu`, `tips`, `status`, `isopen`) VALUES ('956388083570089987', 'order_list', 'order', '[0],[order],', '订单管理列表', '', '/order/list', '99', '2', '0', NULL, '1', '0');
INSERT INTO `guns`.`sys_menu` (`id`, `code`, `pcode`, `pcodes`, `name`, `icon`, `url`, `num`, `levels`, `ismenu`, `tips`, `status`, `isopen`) VALUES ('956388083570089988', 'order_add', 'order', '[0],[order],', '订单管理添加', '', '/order/add', '99', '2', '0', NULL, '1', '0');
INSERT INTO `guns`.`sys_menu` (`id`, `code`, `pcode`, `pcodes`, `name`, `icon`, `url`, `num`, `levels`, `ismenu`, `tips`, `status`, `isopen`) VALUES ('956388083570089989', 'order_update', 'order', '[0],[order],', '订单管理更新', '', '/order/update', '99', '2', '0', NULL, '1', '0');
INSERT INTO `guns`.`sys_menu` (`id`, `code`, `pcode`, `pcodes`, `name`, `icon`, `url`, `num`, `levels`, `ismenu`, `tips`, `status`, `isopen`) VALUES ('956388083570089990', 'order_delete', 'order', '[0],[order],', '订单管理删除', '', '/order/delete', '99', '2', '0', NULL, '1', '0');
INSERT INTO `guns`.`sys_menu` (`id`, `code`, `pcode`, `pcodes`, `name`, `icon`, `url`, `num`, `levels`, `ismenu`, `tips`, `status`, `isopen`) VALUES ('956388083570089991', 'order_detail', 'order', '[0],[order],', '订单管理详情', '', '/order/detail', '99', '2', '0', NULL, '1', '0');
```
执行完成后可以看到,菜单管理页面中已经有了新添加的订单相关的菜单和资源,如下
![image_1c4lpa1c41ndm3c31na83oltf79.png-284.2kB](https://img-blog.csdnimg.cn/20181228174636892)
**在添加完菜单只有,还需要给角色分配相关的菜单权限,才可以把新增的业务显示到菜单上**
打开`系统管理`\->`角色管理`,给当前的登录的超级管理员,增加刚才新增的权限,如下图
![image_1c4lpcuabtoj1nnc1e4n7l4da1m.png-143.8kB](https://img-blog.csdnimg.cn/20181228174636953)
配置完成刷新页面即可看到,即可看到新增加的菜单,如下图,若看不到请重新登录
![image_1c4lr5pkd1634h5o7t1bcu1jh813.png-22.9kB](https://img-blog.csdnimg.cn/20181228174636996)
到这里,基本的增删改查功能就实现了,如下图
![image_1c4lr9ort199k11vcoq91h621u8p20.png-44.1kB](https://img-blog.csdnimg.cn/2018122817463736)
![image_1c4lrbeu4v9va5u160oevjni22d.png-56kB](https://img-blog.csdnimg.cn/2018122817463788)
- Guns 技术文档 v5.1
- 1. 序言
- 1.1 文档简介
- 1.2 Guns教程
- 1.3 获取帮助
- 2. 使用手册
- 2.1 下载项目
- 2.2 导入项目
- 2.2.1 eclipse导入
- 2.2.2 IDEA导入
- 2.3 运行项目
- 2.4 打包部署
- 3. 开发手册
- 3.1 了解Guns
- 3.1.1 模块结构
- 3.1.2 包结构说明
- 3.2 实战开发
- 3.2.1 建表
- 3.2.2 代码生成
- 3.3.3 添加菜单与分配权限
- 3.3.4 编写业务代码
- 3.3 权限控制与校验
- 3.3.1 用户,角色和资源
- 3.3.2 如何对资源进行权限控制
- 3.3.3 前端页面对权限资源的显示
- 3.4 多数据源的使用
- 3.5 如何分页
- 3.5.1 简单查询的分页
- 3.5.2 复杂查询的分页
- 3.5.3 获取前端表格插件传值
- 3.6 数据范围
- 3.6.1 介绍
- 3.6.2 如何使用
- 3.6.3 原理
- 3.7 guns-rest模块的使用
- 3.7.1 关于jwt鉴权
- 3.7.2 关于传输数据的签名
- 3.7.3 guns-rest模块的运行流程
- 3.7.4 运行原理
- 3.8 工作流
- 3.9 日志记录
- 3.9.1 业务日志
- 3.9.2 异常日志
- 3.10 如何使用缓存
- 3.10.1 用工具类操作
- 3.10.2 用spring cache操作缓存
- 3.11 使用枚举
- 3.12 spring boot热部署
- 3.12.1 重新加载html
- 3.12.2 重新加载java类
- 4. 扩展与高级配置
- 4.1 修改项目名和包名
- 4.1.1 修改项目名
- 4.1.2 修改包名
- 4.2 放过接口权限验证
- 4.3 静态资源和模板位置的变更
- 4.4 三个或更多数据源如何配置
- 4.5 添加登录验证码
- 4.6 spring profile
- 4.7 多机器部署开启spring session
- 4.8 使用Redis
- 4.9 XSS过滤器
- 4.9.1 介绍
- 4.9.2 原理
- 4.9.3 放过过滤
- 5. 核心思想
- 5.1 分包
- 5.2 统一异常拦截
- 5.2.1 介绍
- 5.2.2 优点
- 5.2.3 关于性能
- 5.3 结果包装器
- 5.3.1 如何使用
- 5.3.2 ConstantFactory
- 5.4 前端思想
- 5.4.1 布局
- 5.4.2 标签
- 5.4.3 手动新增标签页
- 6. 常见问题答疑
- 6.1 默认的系统登录账号和密码是多少
- 6.2 权限异常
- 6.3 为何分页是前端实现
- 6.4 关于${ctxPath}
- 6.5 放过某些url的权限验证
- 6.6 主页的搜索功能
- 6.7 运行sql报错
- 6.8 关于打包
- 6.9 查询结果的驼峰转化问题
- 6.10 为何使用beetl
- 6.11 为何有的业务没有service层
- 6.12 为何既有dao,又有mapper
- 6.13 提示@spring.active@错误