SpringMVC 学习笔记3
来源:互联网 发布:c 游戏编程基础 编辑:程序博客网 时间:2024/06/03 16:59
- 一导包
- 二配置错误信息定义文件springmvc_validateproperties
- 三配置springmvcxml文件
- 四定义校验规则
- 验证注解
- 验证分组
- 使用示例
- 五如果数据是中文需要定义过滤器
一、导包
Jar包:
hibernate-validator-4.3.0.Final
jboss-logging-3.1.0.CR2
validation-api-1.0.0.GA
Maven:
二、配置错误信息定义文件springmvc_validate.properties
user.nameIsInvalidate=用户名长度应该在3到10之间user.hobbyIsInvalidate=兴趣至少选一个,至多选3个
三、配置springmvc.xml文件
<!--错误信息资源--><bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <!--资源文件列表--> <property name="basenames"> <list> <!-- 注意:这里没有后缀名properties --> <value>classpath:springmvc_validate</value> </list> </property> <!--资源文件编码格式--> <property name="defaultEncoding" value="utf-8"/> <!--对资源文件内容缓存时间--> <property name="cacheSeconds" value="120"/></bean><!--校验器--><bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> <property name="validationMessageSource" ref="messageSource"/></bean><!--使用校验器--><mvc:annotation-driven validator="validator"/>
四、定义校验规则
- 在POJO类的属性上添加验证注解
控制方法的POJO参数注解@Validated,并且后面紧跟一个类型为BindingResult参数
一个BindingResult对应一个POJO形参,并且需要紧跟在形参后面。
如果验证失败,通过遍历BindingResult.getAllErrors[i].getDefaultMessage获取错误信息。
验证注解
@Null 被注解的元素必须为null,对于基本类型(如int,float)肯定校验失败
@NotNull 被注解的元素必须不为null,对于基本类型肯定校验成功
@AssertTrue 被注解的元素必须为true
@AssertFalse 被注解的元素必须为false
@Min(int value) 被注解的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(int value) 被注解的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(String value) 被注解的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(String value) 被注解的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max, min) 被注解的集合或字符串的长度必须在指定的范围内,最好用在集合上(如果列表为Null,会跳过该验证)
@Digits(integer,fraction) 被注解的元素必须是一个数字,其整数位数不大于integer,小数位数不大于fraction
@Past 被注解的元素必须是一个过去的日期
@Future 被注解的元素必须是一个将来的日期
@Pattern(regex,flag) 被注解的元素必须符合指定的正则表达式
@NotBlank 被注解的字符串必须非null,且长度大于0,且调用trim()后长度大于0(即要求有内容,不能只有空格)
@Email 被注解的元素必须是电子邮箱地址
@Length(min,max) 被注解的字符串的大小必须在指定的范围内
@NotEmpty 被注解的字符串的必须不为null,且长度大于0
@Range(min,max) 被注解的元素必须在合适的范围内
验证分组
目的是构建业务与验证之间的多对多关系,使得不同的页面对应不同的验证,更加灵活。例如:注册需要验证user的name,pass,sex,email是否符合要求,登录只需验证name,pass是否为空即可。如果没有分组,那么注册登录要不就是都验证所有输入的合法性,要不就是都仅仅验证非空,不灵活。使用: 1. 定义若干个接口作为分组的标识(接口什么也不用写) 2. POJO类的相关属性的验证注解的参数groups填上接口 3. 控制方法的POJO形参的@Validated的参数value填上接口
使用示例
// TODO
五、如果数据是中文,需要定义过滤器
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param></filter><filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
- springmvc学习笔记3
- springmvc-学习笔记(3)
- springmvc学习笔记3
- SpringMVC 学习笔记3
- SpringMVC学习笔记(3)
- springMVC学习笔记--初识springMVC
- SpringMvc 学习笔记-------springmvc框架
- SpringMVC学习笔记(3)-----表单处理
- SpringMVC的学习笔记
- mybits-springmvc学习笔记
- SpringMVC学习笔记
- SpringMVC学习笔记一
- SpringMVC学习笔记二
- SpringMVC学习笔记三
- springMVC学习笔记
- SpringMVC入门学习笔记
- SpringMVC学习笔记--SimpleFormController
- SpringMVC学习笔记---AbstractWizardFormController
- HDU 5573 Binary Tree ACM/ICPC 2015 Shanghai(构造)
- 三种比较排序算法,java实现
- 了解非堆内存的参数配置
- 解析xml文件的四种方式
- SpringMVC 学习笔记2
- SpringMVC 学习笔记3
- SpringMVC 学习笔记4
- SpringMVC 学习笔记5
- windows核心编程---windows线程池
- SpringMVC 学习笔记6
- 常用排序算法代码兑现
- Spring 学习笔记1
- 新建webApi的帮助文档
- Spring 学习笔记2