使用注解

一、准备校验时使用的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=)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# springmvc
# jsr303校验
# spring
# mvc
# jsr303
# 使用SpringMVC的@Validated注解验证的实现
# springMVC引入Validation的具体步骤详解
# Spring MVC+FastJson+hibernate-validator整合的完整实例教程
# JSP中springmvc配置validator的注意事项
# springmvc的validator数据校验的实现示例代码
# 详解SpringMVC验证框架Validation特殊用法
# SpringMVC使用@Valid注解进行数据验证的方法
# SpringMVC Validator验证示例
# SpringMvc @Valid如何抛出拦截异常
# 递归
# 是一个
# 转换为
# 最小值
# 是个
# 会在
# 或者是
# 自定义
# 可以使用
# 不为
# 表单
# 只对
# 抛出
# 值为
# 大家多多
# 为空
# 范围之内
# 是否符合
# 则对
# 长度为
相关文章:
建站之星如何实现五合一智能建站与营销推广?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何用wdcp快速搭建高效网站?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何通过建站之星自助学习解决操作问题?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
如何在新浪SAE免费搭建个人博客?
如何通过网站建站时间优化SEO与用户体验?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
如何在Ubuntu系统下快速搭建WordPress个人网站?
非常酷的网站设计制作软件,酷培ai教育官方网站?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
如何选择服务器才能高效搭建专属网站?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何通过老薛主机一键快速建站?
如何通过宝塔面板实现本地网站访问?
成都网站制作报价公司,成都工业用气开户费用?
建站之星安装提示数据库无法连接如何解决?
如何在建站之星网店版论坛获取技术支持?
名字制作网站免费,所有小说网站的名字?
jQuery 常见小例汇总
制作销售网站教学视频,销售网站有哪些?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
个人摄影网站制作流程,摄影爱好者都去什么网站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
网站制作员失业,怎样查看自己网站的注册者?
如何在IIS7上新建站点并设置安全权限?
如何高效完成独享虚拟主机建站?
临沂网站制作企业,临沂第三中学官方网站?
北京网站制作公司哪家好一点,北京租房网站有哪些?
建站主机选虚拟主机还是云服务器更好?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
如何通过二级域名建站提升品牌影响力?
建站VPS能否同时实现高效与安全翻墙?
建站主机服务器选购指南:轻量应用与VPS配置解析
已有域名和空间如何搭建网站?
MySQL查询结果复制到新表的方法(更新、插入)
网站网页制作专业公司,怎样制作自己的网页?
如何续费美橙建站之星域名及服务?
建站之星2.7模板:企业网站建设与h5定制设计专题
nginx修改上传文件大小限制的方法
如何在万网ECS上快速搭建专属网站?
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
表情包在线制作网站免费,表情包怎么弄?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。