当前课程知识点:软件开发实训--动态网站开发 > 4 功能设计 > 4.2菜单管理功能设计 > 4.2.1菜单管理功能设计
同学
你好
欢迎回到软件开发实训课堂
上节课咱们对用户管理的功能进行了设计
根据用户管理功能的设计过程
咱们今天再来看一看菜单管理的功能设计
那么菜单实际上就是我们前面所说的导航
现在任何一个软件系统都会有这样的导航
尤其是网站它体现的最为明显
比如说购物网站
它会有很庞大的导航菜单系统
那么对于我们这样的参考网站
相对来讲
它的导航菜单比较简单
只有一个菜单具有第二级菜单
所以说咱们在设计的时候内容比较少
但是它的功能却不能少
我们来看一下菜单
在前端往往称之为导航
也是我们主要使用的导航形式之一
一个网站可能需要多个这样的导航菜单
而菜单的第一级作为菜单的名称
当然它可以加链接
从第一级的后面
也就是第二级开始菜单的内容了
通常我们把里边称之为菜单项
具体呢我们说一般有这样的格式
首先首页这是超链接形式的
关于我们这也是超链接
没有下拉菜单
但是对产品这样的
它具有一个子菜单
也就是二级
有产品一产品二这样的信息出现
那么它和其他的几个菜单表现形式是不一样的
产品当鼠标点击划过的时候会出现下拉菜单
当然了点击和划过
你也可以分开处理
而事件联系我们以及首页和关于我们当鼠标
点击时
他需要转向到其他页面
这个要注意
但不管怎么样
根据我们的接口设计
他们的内容形式是一样的
所以我们在生成的时候
无非是对
像产品这样的有下拉菜单的内容进行一个
子菜单处理
这个要注意
那么除了主菜单也就是主导航以外
有的网站往往还会提供一个二级导航
比如说在页面的最下部叫底部导航菜单
或者是在主菜单的上面有一个小的导航菜单
这样呢都可以通过我们的设计形式来完成它
它的需要的数据都可以用我们前面所设计的
接口来完成
那么对于后台
我们来处理界面时
可以通过用户界面很类似的形式进行
也可以通过树形结构来完成实现
树形结构
就很明确地展示出了菜单的上下级关系
比如说像这样的主菜单
它有首页事件
而底部菜单有关于我们等等
那么这里边前面的主菜单以及底部菜单
是菜单的标识名称
它并不作为具体的导航内容
只是我们在数据请求时给出不同的菜单而已
而从这个地方首页菜单名称这里
才给出了具体的菜单
首页就是我们的一个菜单
而对于我们的产品
它可能还有下一级的菜单
这就是你在菜单实现时界面可以通过这种列表
的形式出现
也可以通过树形结构
那么在他的后边也添加了相关的功能
修改还有删除
你想要修改时
只要点击修改
想要删除就点击删除就行了
但是对于菜单来讲
还需要什么呢
链接的地址
这个是必须的
当然了
如果有下一级菜单的话
可以没有链接地址
不做强制要求
根据你自己的设计来实现
有了这些以后
我们在前台显示的时候还需要注意一个事情
那就是什么
菜单的显示顺序
而这个顺序我们可以让后台进行排序
通过排序功能
把这个菜单位置进行动态的调整
这样用户使起来也比较方便
在设计的时候一定要注意到
还有如果菜单的父节点是零的话
那么就表明他没有上一级菜单
这里边地址为机器识别的名称
这个地址为机器识别的名称
它实际上就是说什么呢
我们用这个程序来处理的时候
需要一个相关的名称
这个时候你可以用地址来进行表示
当然你也可以把这个机器名
单独的拿出来进行表示
这是一个
第二个菜单添加的时候
可以使用弹出窗口
这个时候因为菜单的内容它比较少
它的表单信息少
就一个上级菜单以及一个菜单名就可以了
所以它的表单比较小
你用一个弹出框就非常的使用起来就非常的好
那么下面的菜单在使用的时候
你要在本页中去完成
就是还有一个排序输入数字
就本页去完成就可以了
我们排序不需要单独的去弹出一个对话框来去
或者是弹出一个页面来排序
只需要在夜里输入相关数字
123去排就可以了
这就是有关排序的一个操作
这是一个简单的菜单的一个添加界面
有名称
有它的链接或者叫程序的识别码等等
把它添加进去
当然了你也需要有一个父节点的识别
如果说你有父节点
他就一定要有一个父节点的选择
这个要注意在设计的时候把它加上
或者你用隐藏的形式把它放到里边都是可以的
这里边我们就使用的是一个隐藏形式把它显示
出来
父级可以传进来
用我们的隐藏域把它保存着
那么在具体的操作时
我们依然使用的实体类
首先把实体类设计出来
Menu对应的表明menus
把所有的数据私有化
提供get和set方法
这样访问起来
我们只需要通过方法来进行访问就可以了
然后实现hashCode的以及equals方法
让它能够怎么样
通过hashCode来唯一表示一个实体对象
以及通过equals方法把两个对象进行比较
看看他们是否为同一个对象
当然了
有时候为了能够快速的输出我们的实体信息
也需要去实现一个tostring方法
这个方法也是非常有用的
好
有了这个实体类以后
我们就可以设计我们的DAO访问对象了
它的接口名称MenuRepository
然后实现Jpa的相关接口
并提供实体的类名以及我们的
标识符的数据类型
也就是菜单的ID他用的什么类型
然后我们需要增加一个方法
orderMenus
orderMenus很明确
一看到order就是给菜单怎么样进行排序的
这里边有一个mid以及它的权重
它排在第几位
mid呢是菜单的编号
唯一了确定的一个菜单
而W是菜单的权重
也就是排序的序号
其他就可以使用默认的方法就可以了
增删改查等等
这就是关于数据对象的一个设计
是不是很简单
为了访问数据
由springMVC这边来访问数据
我们还需要一个接口
service的设计
这个service我们用menuservice作为它的接口名称
然后用menuservice Impl这个类名作为它的实现类
而实现接口的时候
提供的方法包括了基本的存储删除
还有修改
以及查找等等
最重要的就是排序要注意
别把它忘记了
因为所有的对于DAO的访问
操作都要经过
service来实现
所以如果说在实现的过程中
你发现这些方法还不够用
你需要怎么样
自己再去添加
但是添加的过程要记住了
一定要先修改文档
再进行相关内容的添加
在后期一定要注意这样的养成一个良好的习惯
先改文档再改
你相关的代码
好
我们来看
在SpringMVC那边我们需要一个控制器
一样的用menu这个关键字
作为控制器的前缀
类名就是MenuController
我们给出的save方法来保存
然后返回list页
也就是说我们保存完了以后
一定要返回到历史的页面去
而不是其他页面
还有当我们执行list的查找
或者是模糊查找以后
也返回的是list的页面
在实现的时候要注意它的返回形式
还有删除
一个菜单被删除后
也让他返回历史的页面
也就是刷新一下列表页
你让使用者能够感受到你确实已经操作完成了
好
这是几个基本方法
当然了
还有一个就是order别忘记order排序
这个是我们
也需要的一个最基本的菜单操作的方法
那么有了这些方法
我们对于菜单的管理就已经实现了
好
这就是有关菜单管理功能的设计实现
这节课就讲到这里
下节课
再见
-1.1课程介绍
--1.1.3随堂测试
-1.2网站需求分析
--1.2.4随堂测试
-1.3网站首页分析
--1.3.3随堂测试
-1.4导航菜单分析
--1.4.3随堂测试
-1.5内容区域分析
--1.5.3随堂测试
-1.6内容副页面分析
-1.7编写需求文档
-2.1后端页面总体分析
--2.1.3随堂测试
-2.2用户管理功能设计
--2.2.3随堂测试
-2.3内容与分类功能分析
--2.3.3随堂测试
-2.4网站配置功能设计
--2.4.4随堂测试
-2.5数据库及表结构分析
-总体设计文档
-3.1前台模板约定
--3.1.3随堂测试
-3.2网站配置接口设计
--3.2.3随堂测试
-3.3菜单接口设计
--3.3.3随堂测试
-3.4内容接口设计
--3.4.3随堂测试
-3.5幻灯片接口设计
--3.5.3随堂测试
-补充设计文档
-4.1用户管理功能设计
--4.1.3随堂测试
-4.2菜单管理功能设计
--4.2.3随堂测试
-4.3内容管理功能设计
--4.3.3随堂测试
-4.4网站配置信息设计
--4.4.3随堂测试
-完成设计文档
-4.6随堂测试
-5.1开发环境搭建
--5.1.2随堂测试
-5.2Web前端环境搭建
-5.3创建用户实体
--5.3.2随堂测试
-5.4用户实体表创建与初始化
--5.4.2随堂测试
-5.5用户数据访问接口实现
--5.5.2随堂测试
-5.6环境搭建问题
-6.1用户服务层接口实现
--6.1.2随堂测试
-6.2用户列表和编辑控制器实现
--6.2.2随堂测试
-6.3用户存储和删除控制器实现
-6.4用户添加、编辑界面实现
-6.5用户管理添加用户调试
-7.1用户查询模板实现
--7.1.2随堂测试
-7.2用户信息编辑的实现
-7.3单个用户删除实现
-7.4多个用户删除实现
-8.1用户列表分页基本实现
-8.2用户列表查询结果分页实现
-8.3通用日期处理
-8.4整型日期处理
--8.4.2随堂测试
-8.5枚举数据的应用
-9.1登录逻辑实现
--9.1.2随堂测试
-9.2登录界面及流程调试
--9.2.2随堂测试
-9.3管理主界面实现
--9.3.2随堂测试
-9.4授权验证拦截器实现
--9.4.2随堂测试
-9.5拦截器调试
-10.1分类接口实现
-10.2分类添加、编辑实现
-10.3分类树结构实现
-10.4分类删除实现
--10.4.2随堂测试
-11.1内容实体定义
-11.2相关接口定义
-11.3服务接口实现
-11.4内容添加、编辑模板实现
-11.5内容添加、编辑控制器实现
-11.6内容检索页面实现
-11.7内容分类树实现
-12.1修改UEditor相关问题
-12.2整合UEditor到内容编辑界面
-12.3UEditor图片对话框应用
-12.4文件上传问题处理
-13.1网站配置相关类实现
-13.2网站配置界面模板实现
-13.3网站配置调试
-14.1网站首页布局实现
-14.2菜单Vue组件实现
--14.2.2随堂测试
-14.3幻灯片Vue组件实现
-14.4滚动Vue组件实现
--14.4.2随堂测试
-14.5滚动接口实现
-14.6滚动接口调试
-14.7幻灯片接口实现
-15.1首页区域实现
-15.2首页内容脚本实现
-15.3首页完善
-15.4Vue组件放入单文件
-15.5详细页面实现
-16.1网站测试介绍
-16.2功能测试
-16.3打包发布
-16.4部署运行
--16.4.2随堂测试