发表于: 2018-03-24 22:07:15
1 566
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
遇到了一个问题,表单的第一个按钮一直失效,从第二个开始才有效。
-----
是因为没注意嵌套了form表单,去掉外面不必要的form之后恢复正常。
根据师兄的建议看了下validator参数检验的框架,理解有限。
1、<T> void validate(T object) throws Exception
用途:校验一个对象的默认校验组的属性。
2、<T> void validate(T object, Class<?>... groups) throws Exception
用途:校验一个对象的指定的一个或多个校验组的属性。
3、<T> void validateProperty(T object, String propertyName) throws Exception
用途:校验一个对象的默认校验组的一个指定的属性值。
4、<T> void validateProperty(T object, String propertyName, Class<?>... groups) throws Exception
用途:校验一个对象指定校验组中的一个指定的属性值。
5、<T> void validateValue(Class<T> beanType, String propertyName, Object value) throws Exception
用途:校验一个value是否符合指定类的默认校验组下的某一个属性值。
6、<T> void validateValue(Class<T> beanType, String propertyName, Object value, Class<?>... groups) throws Exception
用途:校验一个value是否符合指定类的指定校验组下的某一个属性值。
6.1. 内置注解校验
本框架主要是通过打注解(注解)的方式去校验Bean中的属性,现成可用的注解有Bean Validator内置的注解和Hibernate Validator拓展的注解以及Validator自带的注解三种,可以直接使用。父类的校验配置会自动被子类继承。
适用场景:简单的单属性校验。
6.2. 对象图级联校验
对于一个对象中的成员对象属性,打上@Valid注解后,会自动实现对成员对象的级联校验。
本功能适用于复杂的对象,其成员属性为一个对象。
6.3. 校验组分组校验
可以对不同的属性进行分组,以便在特定场景下,仅仅校验一个或几个校验组。一个属性可以归属为多个校验组。
适用场景:将需要校验的属性分类,并单独按组校验。
6.4. 校验组序列
对于已经分成多个校验组的对象,可以配置校验组序列,让各个校验组按照一定的顺序来进行校验。
适用场景:校验组的顺序校验。
6.5. 自定义默认校验组
一个对象会有一个默认的校验组,包含了所有的未分组的校验项。校验默认组的时候不需要在校验方法中指明校验组。如果想让默认校验组包含所有的分组的校验项,可以使用自定义的默认校验组。这样如果想校验整个的对象,就不需要再方法中指定校验组了。大大提高了使用的便利性。推荐所有划分校验组的对象都重新自定义默认校验组。
适用场景:有校验组的情况下,重新定义默认校验组,以包含所有的校验项。
6.6. 自定义智能默认校验组
对于自定义的默认校验组,会有很多的校验组组成。如果想根据当前对象的不同状态来确定默认校验组的组成,决定到底去校验哪些校验组,可以自定义智能默认校验组。
适用场景:根据对象的不同状态,来决定校验哪些校验组。
6.7. 自定义校验注解
对于某一个属性有多重校验约束,或者一些逻辑上的校验约束,可以自定义校验注解,以便整合多重校验约束,或者提供复杂逻辑的校验约束。
适用场景:针对某一个属性值的复杂的校验逻辑,需要自定义。
6.8. 类校验-类属性关联校验
对类校验,注解打在类名上。并可以判断对象中多个属性值之间是否满足某种业务逻辑,来判断是否通过校验。
适用场景:对象多个属性值的关联校验。
对于我目前的项目需求,只需要在实体类的属性上打上相应的标签,或在类的对象属性上打valid以进行级联校验。
明天计划的事情:(一定要写非常细致的内容)
任务二收尾
遇到的问题:(遇到什么困难,怎么解决的)
如上
收获:(通过今天的学习,学到了什么知识)
参数检验的validator框架
评论