完成汽车租赁系统的登录功能
这篇博客主要讲解登录功能的实现,工作台的开发以及很重要的菜单栏的加载三部分内容
汽车租赁系统介绍以及数据库表介绍,环境搭建
演示登录功能
注:这里没有添加验证码的验证的功能(为了方便登录,其实是因为我懒),在项目的最后会加上!! 登录的就是用户, 怎么判断这个用户(输入的账号和密码)能不能允许登录?依靠,要 ,需要数据库查询 完成登录的逻辑,需要 完成,需要控制器,控制页面跳转到登录页面,然后登录成功再跳转到首页.需要
总结一下: 实体(User) UserMapper UserService UserController
字段和相应的解释 字段名 字段说明 类型 是否主键 备注 userid 用户编号 Int 是 loginname 登陆名 varchar identity 身份证号 varchar realname 真实名称 varchar sex 性别 Int 0女1男 address 地址 varchar phone 电话 varchar pwd 密码 varchar position 职位 varchar type 用户类型 Int 1,超级管理员2,系统用户Where type<>1
User代表我们的实体类 如果会使用MyBatis的****,可以使用****,根据数据库快速的创建出实体类和Mapper以及Mapper.xml
作为User的实体增强类,之后有有关用户管理的用户数据分页数据可能会用到,但是在登录功能中用不到.可以先创建出来
是完成登录功能的业务类
UserService接口
UserServiceImpl实现类
系统的首页
到这里基本的登录功能实现完成
其中在我们的Controller中我们将一些常量封装起来,这样就降低了耦合度.
首先明确工作台的位置
分析页面:
有一个xxx欢迎您,要获取当前登录的用户名,或者系统时间
最新文章,这里提供一个获取最新文章的控制器接口,之后我们要做系统公告的获取,然后在这里展示
分析后台:
提供一个从主页index.jsp转跳到工作台的控制器
修改index.jsp中该位置的控制器地址
是工作台显示的Controller 访问Controller时让其转到我们想要显示的jsp页面
工作台的页面
将工作台的控制器地址添加到相应的位置
明确什么是左边的导航栏菜单
开发左边的导航栏菜单要明确的是:
LayUI默认支持的是两级菜单
因此默认支持两级菜单,因此我们把pid=1的作为根节点
,将数据库中查询得到的数据封装为菜单要求的数据格式
不同的用户我们希望进来的时候看的菜单是不一样的,那么在现实菜单是要判断用户的角色
LayUI菜单数据要求的json数据格式是一个标准json,是有层级关系的,而我们在数据库中存储的菜单数据是没有层级关系的,因此需要利用id和pid来组装层级关系.
对于菜单的开发涉及两个方面:
因为前台需要后台通过查询来返回一个json数据,然后前端拿到json数据,然后渲染菜单.
菜单有的另一个功能,就是菜单能够转跳到其他对应的页面.
菜单的实体类 对应数据属性创建
作为Menu的视图层对象
可添加分页属性等,这里不需要添加
提供查询所有菜单的方法
是Layui要求json数据格式的实体类,作为菜单数据的工具类. 把菜单数据组装成Layui要求简单json数据(无分层)
用于把菜单的json数据格式,组装成Layui要求的
实现查询所有可用菜单的实现类
我们这个Controller的作用就是返回给前端Json数据,用于前端用我们返回的json数据给我构造菜单树,因此设置的是RestController的风格,返回的都是json数据格式这就不能转跳,我们需要重新创建一个Controller来实现跳转用于将简单的集合转化为有层级关系的集合对应的使用时在数据库中查询菜单表,然后把菜单表(菜单表中午层次关系)根绝id 和pid组建为有层级关系的集合,然后就可以在页面中展示为有层级关系的类
之前在index,jsp中访问菜单栏我们使用的是静态的就送数据,并非我们数据库中发送的就送数据,现在将其改变为我们的后端发送json数据的handler的地址 菜单开发过程中我们首先明确一定要创建的 实体类一定要创建 实体类的视图增强类一定要创建(视图增强类继承了实体类,能使用实体类的所有属性和方法,但是因为是继承关系,其又可在实体类的基础上添加新的属性和方法) 虽然是继承关系,有一定的耦合度,但是实体类是完全和数据库对应的,而视图增强类又不被其他类所继承,因此耦合度虽然有,但是发生错误的可能性很小.又可以对实体类增强,便于分页查询或者批量删除. 不在实体类中直接添加这些与数据库中数据毫无关系的逻辑性数据是一种比较好的习惯.也便于sql语句的书写. 前端访问Controller的handler时,该handler可以向前端返回一个符合前端json数据格式的,这就实现了从前端请求,到后端业务操作再响应给后端的过程 左侧导航栏菜单的开发中只涉及到从后端传数据到前端,也就是通过handler发送json数据到前端,前端再渲染,之后有些功能就涉及到了需要 在菜单开发过程中,不知道大家有么有仔细观察:我们虽然把pid=1的数据作为根节点,也就是说pid=0的数据(车辆租赁系统是无效的数据,在菜单加载发送数据中是无效的数据),我们在查询时却查询的是所有的菜单数据,并没有过滤掉pid=0的数据,这是因为,因此为了开发复用性,我们查出所有的数据,然后在service层进行过滤 关于Service层的说明:,把简单的sql语句进行拼接完成复杂的逻辑,或者在service层处理一些有关数据处理相关的内容 Controller层:总体来讲两个作用 跳转 发送json数据
我是雷雨,一个的学生,主要专注于Java后端和大数据开发
如果你喜欢这样的文章,可以关注我,一起努力,一起努力拿大厂offer
如果这篇文章有帮助到你,希望你给我一个
如果有什么问题,希望你能和我一起.
如果您要转载请转载注明出处
https://blog.csdn.net/qq_40742223