当前课程知识点:软件开发实训--动态网站开发 > 6 用户管理功能实现 > 6.2用户列表和编辑控制器实现 > 6.2.1用户列表和编辑控制器实现
同学你好
欢迎回到软件开发实训课堂
前面咱们已经将用户访问对象以及用户的服务层
实现完成了
那么用户的数据访问对象
它属于Spring-data-gpa的内容
那么服务层是我们自定义的接口内容
那么这节课我们来看一下
通过私奔mv C的控制器
如何调用我们的服务层来实现数据的访问
这节课咱们就来看看用户列表和编辑的实现
首先我们在我们工程目录上找一个包
比如说我们的默认包
因为我们还没有控制器的包
所以我们选择一个包
就可以快速的去添加包
右键点击
然后新建一个JAVA类
类名我们就用UserControll
然后在包名这一块
加上controller
表示我们所有的控制器被放在这个包里面
然后点击完成
完成后
我们在类上增加一个注解
controller
这样告诉spring
我们这是一个控制器
控制器对数据的访问是通过服务来的
而服务是通过丢来的
因此我们首先通过Autowired来获取我们的服务对象
导入我们需要的类和注解
那么对于控制器
我们需要做的是进行相关操作的转发
比如说用户发送了一个编辑的请求
那么当我们获得编辑的数据时
去数据库里查询相关信息
然后把查询结果反馈到前台
这是spring MVC的一个简单流程
我们在这里简单写一下我们需要完成的内容
控制器
首先我们需要定义的第一个内容是查询所有的
符合条件的用户信息
并分页传送给界面
这里要注意分页
因为信息多的话
一个页面应该是显示不下的
第二个
我们来看一下
当我们需要编辑的时候
首先先得去从数据库里查询
所以我们需要一个编辑方法
从数据库查询
需要的数据
当我们新增和编辑完成后
还需要保存
因此我们需要一个存储方法
新增的用户或编辑后的用户信息存储到数据库
这是一个
最后我们需要删除
或者锁定某个用户
锁定在我们的数据库里边
只是需要改变一个字段
那就是用户的有效状态
好
我们根据上面的分析来添加对应的操作
首先我们来添加一个list的方法
list的方法的作用是去数据库里根据条件
来检索
检索的数据
把它传给前端界面
我们用注解RequestMapping来注解他
访问的路径是listusers
导入需要的注解
方法的参数呢
就是我们的传进来的关键字
我们要想给页面传递数据
需要一个对象model
我们首先pageuser对象从数据库里去查询
user Service.findAll
那么这个pageable是怎么来的
也需要我们通过前台传进来
当然如果我们没有传递的话
spring会给它一个默认的
0到20
也就是它的值默认是第零页
也就是实际上这只是页码的索引
然后每页20条数据
默认
分页从零开始
我们索引是零页
也就是第一页
取每页20条数据
这是默认的
导入需要的类
然后我们把取得的数据给它发送到前台
这里我们可以用Pages来作为关键字
这样我们在前台可以获得pages里边包含的
除了实体以外的其它信息
这样用名字就可以很方便的区别
如果我们用u的词的话
往往会误解为它只包含了实体信息
所以这个名字我们把它取得有意义些
当我们查询了数据后
返回给界面
这里返回的就是界面的名称
我们通过界面里面就可以得到pages了
这是列表页
我们加上注释
根据条件查询用户信息
这是查询的关键字及条件
model这是模型对象
也是视图的
视图就是界面
上下文环境
Pageable是分页信息
包含了分页需要的基本信息
如当前页号和每页的条数
最后返回字符串代表了界面文件
我们转到某个界面文件去
这是list列表
第二条是我们要从数据库中查询数据来进行编辑
或者我们要打开新增的页面
这个时候我们一般使用get请求就可以了
因为我们的List请求
它既要使用get
也要使用查询post请求
所以说我们用Request映射
而这里只需要get请求我们用的就是GetMapping
那么我们可以提供两种访问方式
当新增的时候
我们并不需要参数
而我们需要编辑某个用户信息时
这个时候我们需要参数
这就是两种请求方式
public String edit
在这里
第一个请求路径没有参数
当我们接收这个数据时
这个数据来自了这个路径
我们请求的路径
也就是第二个路径带有uid这个参数
所以我们要用注解
PathVariable来注解
我们的第一个参数数据
是来自路径的uid
但是uid如果我们使用第一个访问路径的话
uid就是空的
但是uid如果我们使用第一个访问路径的话
所以他没有值
所以他没有值
因此我们需要有一个required
等于false
也就是说uid不是必须的
这样我们就可以根据uid的值来判断它是
添加还是修改了
把模型对象给他
然后说
如果uid不等于空
并且uid大于零
说明这个用户ID是有效的
我们就去数据库里查询相关的用户信息
findById就可以得到
如果我们没有传递到uid而使用的是前面的路径
这个时候我们并不需要去数据库查询
仅仅需要一个user对象就可以了
所以我们还不能把User对象单独的就放在
if语句里边去定义
所以我们预先的可以这样去定义它
当ID不为空的时候
我们再去查询
查询出来后
我们把它放到模型对象里边
这样界面就可以找到他了
最后我们返回编辑界面
这样见界面打开的时候
无论你是新增一个用户
还是编辑一个用户
User对象都不为空
你的界面也不会出现异常
好
有关控制器中对列表和编辑的实现就讲到这里
我们下节课再见
-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随堂测试