当前课程知识点:软件开发实训--动态网站开发 > 10 分类管理实现 > 10.2分类添加、编辑实现 > 10.2.1分类添加、编辑实现
同学
你好
欢迎回到软件开发实训课堂
上节课咱们讲了
分类的数据访问对象以及它的服务层的实现
那么如何来进行编辑和添加分类信息
我们把这个分类拿出来讲
主要是因为我们对它的编辑添加以及对他的列表
实现与其他不同的操作
比如说我们的列表
用树形结构来实现
我们的表单和列表放在一个页面里
所以我们的内容分类只有一个页面模板
好
我们来看一下怎么来实现
首先我们添加页面模板
模板的名称我们就叫做edittype
我们可以把原有的界面复制一个这样
我们就可以少写很多东西来提高我们的开发效率
好
标题改一下
编辑内容分类
然后我们储存的action以及我们使用的对象contentType
这个错误处理
我们不需要动
分类的名称
字段名name
把它改过来
它的长度我们用25
因为我们数据库是50
它有25个汉字可以输入
提示语句写上请输入内容分类名称
然后我们把下面的密码改为权重
权重
类型我们可以用number来接受输入
长度我们就不需要了
因为他是个数字
在这里
我们EADHT提示信息写上
请输入权重值
用以排序
再加一个
我们放上上一级的分类
上一级分类
我们又下了框就可以了
这里写上上一级
Id select
然后field等于
注意我们的parent.tid绑定一定要用
新号来绑定
然后加上class等于
form-control
option
我们先给他写上一个空的
因为我们是编辑和新增在一个页面里
所以我们还需要一个隐藏的预input type=hidden
它呢主要是field等于用来隐藏我们的已存在数据的Id
注意这里用星号
这样我们对模板就编写完成了
好
我们再来写我们的控制器
在控制器包上点击右键
选择java类
控制器的名称
我们就实体名加上Controller就可以了
用注解注解我们的控制器
然后对我们分类
刚才也讲了
我们不需要一个单独的列表页
只需要在单个页面里既可以新增又可以编辑
最后我们还有一棵树来展示它的全部内容
好
我们在这里先来进行编辑的操作
编辑呢我们既有新增又有修改
所以我们可以用get Mapping提供两个
路径
第一个路径不带参数
第二个路径是要带参数的
同样的
它的第一个参数来自我们的路径
导入我们相关的注解和类
这里边要注意我们有多个路径
用花括号把它们括起来
用逗号分隔就可以了
当我们界面上需要一个对象时
我们可以用model给他传递一个对象
这里我们就需要一个contentType对象
好
我们可以判断
如果tid为空的话
它就是新增
就说明要新增
这样子我们就可以去实例化我们的对象了
如果是新增
我们来一个空对象就可以了
如果不是新增
我们就需要查询
那么我们在前面的时候并没有增加以ID为
参数的查询方法
所以我们要去服务层添加一个查询方法
我们这里返回contentType findByID
就直接用他的ID来查询
这里边数据访问对象返回的是个Optional对象
所以我们先要拿到他
findByID你把ID传给它
说如果oct里边已经包含了对象
我们就return oct.get 得到它
否则就人推一个空着对象不存在
这样我们findBy就做完了
通过ID来查询
那么现在我们就可以用它了
TF等于
service我们需要把它注入进来
contentType
service
直接调用findByID来查找
最后通过model
把这个数据传到界面去
注意contentType一定要和界面对应
完成后return edittype返回界面的名称
编辑完成后
我们提交需要存储数据
那么存储用的是post方法
路径也和界面要一样
savetype
一定要对应起来
而post提交的是一个contentType对象
我们可以接收到它
存储完成后
我们把成功消息提交给前台
那么实际上我们说我们可以校验他提交的数据
是否姓名不为空
如果说有错误
我们可以用Binding
来处理错误
如果有错
实际上我们对这个判断
看你需不需要对它在这里进行相关的处理
如果不需要的话
我们直接就给他return一下就行
retuurn到哪里return到我们的编辑界面
这里面我们实际上也要保存这个contentType
我们直接把它保存起来
因为我们返回界面需要他
这个时候不需要新建了
而是直接就从传过来的
再给他就行了
如果说没有错误
我们就调用存储方法去保存它
保存完成后
我们最好提示一下用户
可以放一个OK保存成功
这样一个提示消息
因为我们是返回相同的页面
所以错误处理这里可以不处理
在界面上处理就行了
这里暂时没有业务逻辑
所以我们不加代码
只要把这空着
好
完成后
我们在浏览器里边去看一下
直接访问我们的对象
edittype
需要登录
我们输入正确的用户名密码
登录系统
再次去访问它
好
这个出现了错误
我们看它实际上有一个Missing URI
模板变量
这就是说你丢了一个模板变量tid
这是因为我们请求的时候看一下请求的时候
我们有两个路径可以访问edittype的方法
一个是带有ID的
一个是没有的
但是我们在eidittype的方法的第一个参数里
需要tid而且它是必须的
所以我们把这个改一下
改成不是必须的
required等于false
然后用名字等于tid这样的话我们就可以
正常的提交null了
好
重新登录
进来后
我们输入信息
因为我们还没有上一级
所以不用管它
点击保存后
没有其他的信息
我们来看一下
在后台
我们可以在开发工具的控制台看到已经执行了
insert into这样一个方法
这说明我们已经插入成功了
也没有报异常
那么界面没有提示
是因为我们并没有把OK显示出来
现在我们来显示OK消息
我们加入一行
并加上判断
说如果
OK是存在的
我们就把它显示出来
并且我们给一个class alert success
然后显示OK
这样一来我们才能够真正的把
OK显示出来
也就提示用户保存是成功的
我们直接修改权重
这样保存就成功了
好
有关内容分类的编辑就讲到这里
我们下节课再见
-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随堂测试