00:00
下边呢,我们来讨验,呃,我们来讨验,下边呢,我们来讨论一下这个数据的校验。首先说一下什么是数据的校验。这是一个表单啊,例如我们说输入的last name不能为空,输入的email这个字符串必须是一个email,合法的email地址,输入的这个bos必须是一个Bo。什么叫必须是个birth啊,就是说你输入这个时间啊,得是当前时间之前的一个时间,而不能是之后的一个时间。对吧,再比方说你输入这个Siri,这个工资必须在某一个范围内,诶这个就叫数据的校验。好的,我们来简单的来写写笔记哈。数据校验,如果要是研究的话,我们大约需要通过几个方面对其进行研究呢?第一个如何校验,这个需要说那我们希望怎么校验啊,我们在做这个数据格式化的时候啊,加一个注解就可以了,在抓two里面这个校验得搞个配置文件,如果要能通过一个注解搞定的话,这肯定是特别让人愉快的一件事,是吧?注解,哎,第一个问题,第二个问题验证出错。
01:25
转向到哪一个页面?第三个问题。错误消息是吧。错误消息如何显示,还有呢,如何把错误消息进行格式化,格式化我们这节课呢,啊,不是格式化就什么呀,叫国际化对吧,就是这个错误消息你给我选择一个中文啊,你老是个英文的话,我看不懂啊。
02:04
我们这节课呢,来讨论前两个问题,下下节课呢,来说最后一个问题好了,说如何校验。加一个注解吗?当然加一个注解就可以了,我们看PPT,我们使用这个验证的标准呢,叫GSR303,它是Java为。Java bin数据合法性校验提供的标准框架已经在jar6.0这个标准里边了,JSR303通过在并属上并属性上添加注解就可以注解,比方说nono啊,Max啊,哎这样的注解,具体注解呢,我就不再一个一个的进行这个复述了哈,大家可以来看这个PPT可以吧。刚才我们谈到啊,这个GR303实际上是一个标准,所以说它就需要有一个实现产品对其做支撑,那实际上呢,这个实训产品啊,叫harmonlet valid,注意哈,叫harmonlet valid可不是harmonlet。
03:09
好,这里边的话呢,诶,这个harmlet va除了支我们GSR303标准这个注解以外,它还支持一些扩展的这个注解,比方说email Les not empty range,看这个意思啊,就能知道这个验证是个神马意思。对吧。好的,具体看如何来进行校验呢?应该是分为这样的几个步骤,第一个你你得加价包,那个价包呢,就是把这个harmony value验证框架的这个架包放到当前的A路径下。下一个问题,Spring mvc上下文你得配置一个local valid factory bin。那么这个bin的话呢,怎么配呢?你可能已经想到了,通过mvc drive就可以了。
04:02
再下一个问题。哎,我们需要在。Spring mvc目标方法的那个B的类型的前面加上一个注解叫。Valid啊,这样的话呢,我们既可以完成对这个bin属性的校验。好吧,我们来试一下。笔记先写一下哈。小易使用。GSR303验证标准小二需要加入Hart valid验证框架小三。我们需要在。Spring mvc上下文spring mvc配置文件吧,配置文件中添加MVC这个配置。
05:13
这个配置呢,我们实际上已经加了是吧。CTRLC过来好。四需要在B的。属性上添加对应的注解,五在目标方法B类型的前面添加edge value注解,这样的话呢,既可以完成这个验证,OK,我们现在我们先把目前这个程序啊跑一下。
06:03
大家看我目前我按个提交,诶他也过得来是吧,我现在呢,我希望这个last name不能为空,这是一个email,然后呢,这个Bo是一个当前系统时间,之前的时间,现在是2014年12月20号,那么你要输入2014年12月21号啊,这个就无效,懂了吧,我们就验证这样的。三个,那首先我们先加入加包。找到我们的E盘,Java open source,看halet v。呃,这两个包需要复制一下。复制到lib目录下。然后呢,注意Li里边有个require,这里边这个EL就不需要不需要复制了哈,这个需要复制一下。
07:02
真题OK,这边搞定了。第二个步骤这个配置啊,已经有了是吧。这配置已经已经有了是吧,这个验证框架的架包,这样说合适一点是吧,然后呢,我们加注解,比方说我们加。Last not不能为空,对吧,来email email还有一个叫。Boss应该就什么呀。Post。这应该是一个。Post constructor,这个不是哈,这应该是个什么呀?应该是一个之前的时间,我们看一眼这块是怎么写的。叫past不叫post past好的加好加好之后呢,再到我的目标B,目标B我们看一眼诶。
08:03
这块employee目前还不行,找一下。走,我们看目前还不行,而且的话呢,没有打印出任何错误吧,好了回来。加一个注解叫at。保存。早起。回退提交,诶注意这个时候的话呢,失败了是吧,没有验证成功,我们呃,没有没有到我们的目标方法,诶这块有一个很烦躁的一个事儿,他说什么呀,他说嗯。我没有这样的一个方法,这是一个错误,这个错误怎么解决呢?我们注意到啊,这里边有这样的三个价包,这三个价包这叫EL相关的嘛,是吧,我们实际上在我们这个。
09:00
D盘Java他们看的这个目录下呀,有对应的包,你看有一个EL包,我把这三个复制过来看好了啊,同时把这个EL给它。删除。删除这么删是删不了的,我们使用什么呀,我们使用这个360强力删除粉碎是。好的,嗯,重新启动再看一下。这个炸包呢是一件很恶心的事,处理不好的话就会发生冲突,注意一下就可以了,好了,刷新好的,我们看出了一个错法,叫拉内容不能为空,哎呦,这还是个中文是吧?诶他把这个错误消息呢,已经给本地化了,当然这个呃,错误消息我们还是可以进行定制的,好的,我回退。这个不能为空,同时呢,这个必须得是一个email,我先写着了哈,不,我写个一啊,2014年12月,我写个21号好走一个。
10:04
大家看透露消息。Birth必须是一个过去的时间,它这很明显错了是吧?事件啊,Email不是一个合法的email地址啊,不能为空。好的,我把这个来写一下,艾特163。.com。写一个值这个写个19号好了,这个时候呢,我们就看不到这个错误了,看见了吧,诶这就是我们整个,呃。使用JSR303进行验证的一个流程。好了,这个呢,就完成了下一个问题,验证出错的话去哪个页面啊。实际上我们刚才做的时候呢,我们用到了我们上节课讲那个格式化出错,这个叫班丁。Result,诶,我们正式根据这个半result里边是不是有错误,决定着它去什么页面,看见了吧,说若验证出错,则嗯,转向。
11:20
定制的页面,这样就可以了,好了。怎么转呢?怎么转呢,直接return return什么呀,我这个页面呢,实际上叫input哦,我去这个input之前实际上还有点讲究是吧,我们需要在这里面加入这个。好的,我把这个来加一下map。String object map保存。
12:02
重新启动看一下效果。回退注意这个我改成21走。页面又回来了吧,这个就是什么呀,实际上他这块的话呢,还可以帮我们来做一个表单的回显,再看一下。哎,表单可以回写,没问题。没问题。这里边呢,有一个需要我们注意的地方,我们呃,自然的写下来发,没发现什么问题是吧,注意的地方呢,在这。在这我们看一下PPT哈。说这个错误消息啊,可以放到这个beding result里边,这个beding result实际上也是一个error errors这样的一个类型,我们点一下它,你看它也是I,它也是errors,所以说。
13:01
你在这块放这个errorrows也是可以的,Ctrl o。这也是可以的,这个没问题。但是需要注意的是。需要注意的是。需要校验的bin和后边这个结果,就是这个班丁result或者是艾ris,这个之间不能有任何其他的路参,就他俩必须挨着,懂这个意思吧?诶,这是一个需要特别注意的地方,CTRLC复制过来,我们复制到这。注意,哎,这是一个需要我们注意的地方,看到了吧,那以上呢,我们就完成了这个数据的校验,下面的问题就是在页面上如何显示这个错误消息,以及如何把这个错误消息进行国际化,对吧,下节课说。
我来说两句