00:00
下边呢,我们来看一下修改状态下Ajax验证用户名的可用性,首先还是确定开发目标,我们来看一下实际的运行效果。我把以前这个项目呢跑起来。这个时候的话呢,我两个项目一起跑,一会儿我们来做一个对比。List all employee,我来点这个修改,我们现在呢,呃,这个人叫bbb,我们注意到有一个人叫CC是吧。Edit,好了,我加上一个字母,这个时候它应该是可用的,弹出可用。我改为ZC弹出不可用,好了,下边是一个需要注意的地方,怎么注意啊,我把这个债改为bbb,我以前的名字不是bbb吗?这个bbb我应该可用吧。
01:08
本来我本来我的名就是bbb啊,所以说点一下。可以放心使用,我们注意到这个时候的话呢,控制台没有打印,所以说这个时候实际上。没有发送任何的aja。OK,再来看一下目前我们的运行效果。SP new employees。好了,我们这块的话呢,有一个人叫BB,注意这个人叫AA,我来点edit。我随便加两个可用,好AA不可用,我点BB注意看他弹的是不可用,那这个时候呢,他实际上是发了AX请求。那发A的请求的话,在数据表里边当然是存在的一条记录,那个last name是BB哪一条啊,不就当前这一条吗?
02:07
所以说这个轴它给我显示不可用,那这个时候这个校验的逻辑实际上是错误的,我本来就是叫BB,我怎么还不能用,我以用我自己的名字呢,诶这就是他俩之间的一个差别,我们就是要把这个差别给它解决掉。好了,我来写一下哈。和添加状态。下Ajax验证的区别说,哎,若。修改回。当前的asname。则不应该在发送任何Ajax请求。而直接。
03:03
A lot。用户名可用,懂这个意思了吧?哎,这就是我们需要完成的任务,那我们从这个功能上看的话,DAO层service维自成controller,就是我们那个handleler都不需要做任何改变,我们只需要去修改JSP页面的GS逻辑就可以了。修改GS。的Ajax请求逻辑。怎么改呀,说落。若修改回。之前的lastname则不发送任何请求,直接弹出用户名可用。
04:04
这就是我们的,呃,我们要处理的这个任务。如何处理,就这样处理是吧,好了找到我们的页面,这个时候的话呢,服务器都不需要重启。到过来。现在呢,有一个问题,有什么问题啊,我给他这样一改的话,那我还知道我以前这个LA name是多少吗?是不是不知道啊。是不是不知道啊,所以说我首先需要干一件事,我得来保存我以前的last name是多少,那我就来加一个隐藏域吧。这个隐藏域呢,我们可以放在这个外边。C。C标签没有导进来是吧。T。
05:01
Prefix。CE。如果。Employee的ID不等于空的话,这说明这是一个修改的状态,这个时候ID不是空啊,然后的话呢,我写一个隐藏域。Type hidden name叫old login name。Old last name。Value是employee.lastname哎,这里边的话呢,用来存放我以前的lastname,然后回来回来我们看说若修改的。
06:02
Lastname和之前的lastname一致,则不发送Ajax请求,直接alert。什么呀?Last name可用是我们的要求,于是的话呢,我获取一下这个old name吧。在这儿。这个呢,我们写为ID为好是吧,因为我不需要进行提这个表单,所以说用ID我们获取起来也更加的方便。外流值等于trim一下。如果这个值不等于空,而且这个值也不等于空串。
07:11
而且这个值等于我们填的这个value,那我就直接做一个这样的打印,我这个A请求,这个方法就结束,就是这个方法就结束,我将不再发送任何A请求。刷新好了C可用AA。不可用,注意BB是不可用啊。这个时候我们注意到这个这改BP哈,控制台没有打印,就是说我根本就没有去发送任何Ajax请求。
08:01
这样的话呢,我这个操作就成功了。就是说这个时候我们需要用一个隐藏域来保存以前的old。Last name,但他不需要提交,所以说你甚至都不需要去设置那个。内幕属性,然后前端使用JS,这样处理一下就可以了。
我来说两句