文章标题

来源:互联网 发布:c语言char函数定义 编辑:程序博客网 时间:2024/05/17 03:52

SpringMVC 使用JSR-303进行校验 @Valid

使用注解

一、准备校验时使用的JAR

validation-api-1.0.0.GA.jar:JDK的接口;

hibernate-validator-4.2.0.Final.jar是对上述接口的实现;

log4j、slf4j、slf4j-log4j

 

二、编写需要校验的bean

@NotNull(message="名字不能为空")private String userName;@Max(value=120,message="年龄最大不能查过120")private int age;@Email(message="邮箱格式错误")private String email;

 

三、校验方法

复制代码
@RequestMapping("/login")    public String testValid(@Valid User user, BindingResult result){        if (result.hasErrors()){            List<ObjectError> errorList = result.getAllErrors();            for(ObjectError error : errorList){                System.out.println(error.getDefaultMessage());            }        }        return "test";    }
复制代码

备注:这里一个@Valid的参数后必须紧挨着一个BindingResult 参数,否则spring会在校验不通过时直接抛出异常

 

前台可以使用spring的标签库也可以自己自定义处理

spring标签库的用法:

复制代码
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>   <html>   <head>   <title>Reservation Form</title>   <style>   .error {       color: #ff0000;       font-weight: bold;   }   </style>   </head>   <body>       <form:form method="post" modelAttribute="vm">           <form:errors path="*" cssClass="error" />           <table>               <tr>                   <td>Name</td>                   <td><form:input path="userName" />                   </td>                   <td><form:errors path="userName" cssClass="error" />                   </td>               </tr>               <tr>                   <td>email</td>                   <td><form:input path="email" />                   </td>                   <td><form:errors path="email" cssClass="error" />                   </td>               </tr>               <tr>                   <td colspan="3"><input type="submit" />                   </td>               </tr>           </table>       </form:form>   </body>   </html> 
复制代码

 

四、开启spring的Valid功能

<mvc:annotation-driven />

 

五、JSR303定义的校验类型

复制代码

空检查

@Null       验证对象是否为null

@NotNull    验证对象是否不为null, 无法查检长度为0的字符串

@NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.

@NotEmpty 检查约束元素是否为NULL或者是EMPTY.

 

Booelan检查

@AssertTrue     验证 Boolean 对象是否为 true  

@AssertFalse    验证 Boolean 对象是否为 false  

 

长度检查

@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内  

@Length(min=, max=) Validates that the annotated string is between min and max included.

 

日期检查

@Past           验证 Date 和 Calendar 对象是否在当前时间之前  

@Future     验证 Date 和 Calendar 对象是否在当前时间之后  

@Pattern    验证 String 对象是否符合正则表达式的规则

 

数值检查,建议使用在Stirng,Integer类型,不建议使用在int类型上,因为表单值为“”时无法转换为int,但可以转换为Stirng为”“,Integer为null

@Min            验证 Number 和 String 对象是否大等于指定的值  

@Max            验证 Number 和 String 对象是否小等于指定的值  

@DecimalMax 被标注的值必须不大于约束中指定的最大值. 这个约束的参数是一个通过BigDecimal定义的最大值的字符串表示.小数存在精度

@DecimalMin 被标注的值必须不小于约束中指定的最小值. 这个约束的参数是一个通过BigDecimal定义的最小值的字符串表示.小数存在精度

@Digits     验证 Number 和 String 的构成是否合法  

@Digits(integer=,fraction=) 验证字符串是否是符合指定格式的数字,interger指定整数精度,fraction指定小数精度。

 

@Range(min=, max=) 检查数字是否介于min和max之间.

@Range(min=10000,max=50000,message=”range.bean.wage”)
private BigDecimal wage;

 

@Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.(是否进行递归验证)

@CreditCardNumber信用卡验证

@Email  验证是否是邮件地址,如果为null,不进行验证,算通过验证。

@ScriptAssert(lang= ,script=, alias=)

@URL(protocol=,host=, port=,regexp=, flags=)

复制代码

 

6、自定义校验类型

可以参考:http://exceptioneye.iteye.com/blog/1305040

 

使用接口

可以参考:http://elf8848.iteye.com/blog/1299587

分类: springMVC
好文要顶 关注我 收藏该文
自行车上的程序员
关注 - 6
粉丝 - 38
+加关注
3
0

« 上一篇:spring MVC环境搭建
» 下一篇:使用spring的@Async异步执行方法
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 摩托车转向灯不会打怎么办 浓硫酸弄到脸上怎么办 钥匙被锁在家里怎么办 有奶宝宝吸不出来怎么办 奶涨宝宝吸不出来怎么办 高铁票未取误点怎么办 飞猪上12306占座失败怎么办? 新生儿肚脐还没有脱落发炎怎么办 蹲坑被纸巾堵了怎么办 老公有外遇老婆不想离婚怎么办 结婚十年妻子出轨该怎么办 初生儿眼睛多眼屎怎么办 被丝袜脚摩擦过瘾了怎么办 老公在卧室装摄像头怎么办 听了鬼故事害怕怎么办 看完鬼片害怕睡不着怎么办 晚上看了鬼片怎么办 说话不经过大脑考虑怎么办 我太受欢迎了怎么办动漫结局 狗胃不好总呕吐怎么办 比格犬晚上叫怎么办 玻尿酸隆鼻变宽了怎么办 打玻尿酸鼻子变宽怎么办 鼻炎的人感冒了怎么办 小孩上幼儿园反复感冒怎么办 3岁宝宝感冒鼻炎怎么办 鼻炎犯了鼻子不通气怎么办 食物呛到鼻子里怎么办 胃疼引起的焦虑怎么办 泰迪犬发生口腔亏痒怎么办? 俩鼻子都堵了怎么办 2岁宝宝鼻甲肿大怎么办 感冒10多天不好怎么办 宝妈鼻炎犯了怎么办 鼻炎犯了好多黄鼻涕怎么办 空调吹多了上火怎么办 宝宝感冒鼻塞流鼻涕口臭怎么办 怀孕了有鼻息肉怎么办 孕晚期鼻炎犯了怎么办 孕妇鼻炎犯了头疼怎么办 一岁宝宝有鼻炎怎么办