BOS项目(SSH)04_01_修改密码功能(DAO抽取公共更新方法、service层也可以写hql)、Action和Jsp的实现、使用js提交表单

系列文章目录

前言——修改密码的思路

修改密码的思路:
点击修改密码
在这里插入图片描述
一点这个确定就发送一个请求给Action
Action里面去写个方法来接收它修改密码
而Action里面这个方法依次调用Service层
Servicec层又调用Dao层
思路就是这样,具有实现也很简单,下面看具体实现

修改密码功能

具体操作
先搜索确认密码在哪触发
在这里插入图片描述

在这里插入图片描述
仔细看代码,其实就是一个表单,有个确定有个取消

在这里插入图片描述
一定要注意,代码量里面并没有确认和取消按钮

在这里插入图片描述
我们需要找一下修改密码的点击事件
在这里插入图片描述
在这里插入图片描述
js方法一般写在上面的,我们在页面上往上看
在这里插入图片描述
在这里插入图片描述
那么现在我们就是要找确定按钮
在这里插入图片描述
这个地方我们要注意,以前我们的确定按钮一般都是放到表单里面去的,现在它给我们一种误解了,没有放在表单里面
这里是需要注意的
分析完前端页面之后再理一下流程
在这里插入图片描述
注意这里action和jsp需要一起写
下面开始具体写
在这里插入图片描述
首先,新密码要和确认的密码一致才能修改成功
这个我们暂时放一下
考虑一下修改的必要条件
需要传一个密码过来,并且还要传一个id,不然不知道是改谁的密码
所以我们一点击确定的时候要传这两个值给service层
但是我们发现jsp里面确定是时候也没有提交表单,这怎么处理呢?
接着往下看,你会找到答案

一、修改密码功能——DAO抽取公共更新方法、service层也可以写hql

何为抽取?
在这里插入图片描述
在这里插入图片描述
执行这个hql的时候传多个参数的时候,参数也可以随之传进来
在这里插入图片描述
在这里插入图片描述
没有直接可用的方法怎么办?
因为hibernateTemplate本身是对session的一个封装,一定要明白hibernateTemplate只是一个封装,让我们的操作更简单而已
我们可以用回session,即我们完全可以获取它的session
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意与当前线程绑定的session不需要关闭,如果关闭了,可能会显示不出数据

baseDao层写完之后,其实Dao层继承了baseDao,即Dao层拥有baseDao的一切功能,所以相当于Dao层也写完了
接下来就是
就是service层了
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

我们这里需要注意,我们把hql就写在了service层里面了,而不是dao层,这样也是可以的

然后我们先不管jsp页面,我们先用单元测试测一下这个service

单元测试测试service

在这里插入图片描述
在这里插入图片描述
看看能不能修改成功
在这里插入图片描述
这有就成功了
单元测试成功,继续往下就是Action和jsp了
这里我们先放一下,我们回顾一下另外一种方法
以前我们是不是可以把hql放到映射文件里面去
写在映射文件里面的好处是什么呢,好处就是一旦我们的hql(或者是sql)语句要改的时候,不需要重新编译
这点跟写在配置文件的原理是一样的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完了之后就去实现它
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
两种方式都可以,你想怎么写就怎么写

二、 Action和Jsp的实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意为什么不取password,因为模型里面有,第一是重名了不好,第二是模型驱动如果去获取password就会是一个新的密码了
当然password也不是不可以,只是操作上有一少许变化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Action写完了,下面就是jsp了
在这里插入图片描述
在这里插入图片描述
现在我们提交是不是有问题,好像没有没有提交按钮(submit)

在这里插入图片描述
没有submit怎么办呢?
不要慌,没有就自己写
我们自己写js即可
在这里插入图片描述
目前为什么点取消是有反应的,点击确定没有反应,我们研究一下

在这里插入图片描述

那么点击确定没有反应,我没完全可以模仿这个取消

使用js提交表单(经常会用到)

思路很简单,我没只要拿到表单,调用它的submit方法就行了

在这里插入图片描述
一行代码搞定
这就是通过js来提交

接来下就可以测试整套修改密码流程了

总结

1、与当前线程绑定的session不需要关闭
2、使用js来进行表单提交也是常用的一种方式,一定熟练掌握

猜你喜欢

转载自blog.csdn.net/qq_41753340/article/details/115227573
今日推荐