SpringMVC数据校验
来源:互联网 发布:淘宝怎么添加宝贝规格 编辑:程序博客网 时间:2024/06/05 06:39
http://www.linuxidc.com/Linux/2017-01/139333.htm?utm_source=tuicool&utm_medium=referral
一、数据校验
在web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对 数据进行验证。输入验证分为客户端验证与服务器端验证。客户端验证主要通过JavaScript脚本进行,而服务器端验证则主要通过Java代码进行验证。 为了保证数据的安全性,一般情况下,客户端和服务器端验证都是必须的
二、关键步骤:
①、导入JAR包
SpringMVC支持JSR(Java Specification Result,Java规范提案)303-Bean Validation数据验证规范。而该规范的实现者很多,其中较常用的是Hibernate Validator。需要注意的是,Hibernate Validator是与Hibernate ORM并列的Hibernate的产品之一。这一点从Hibernate官网上所提供的资源形式可以看出他们之间的关系。
②applicationContext.xml中配置验证器
③定义实体类,打注解标记
public
class
UserInfo {
@NotEmpty
(message=
"用户名不能为空"
)
@Size
(min=
3
,max=
6
,message=
"姓名长度应在{min}-{max}"
)
private
String username;
@NotNull
(message=
"成绩最大值为100"
)
@Min
(value=
0
,message=
"成绩不能小于{value}"
)
@Max
(value=
100
,message=
"成绩不能大于{value}"
)
private
Integer score;
@NotEmpty
(message=
"手机号码不允许为空"
)
@Pattern
(regexp=
"^1[34578]\\d{9}$"
,message=
"手机号码格式不正确"
)
private
String phone;
}
注:
下面是主要的验证注解及说明:
注解
适用的数据类型
说明
@AssertFalse
Boolean, boolean
验证注解的元素值是false
@AssertTrue
Boolean, boolean
验证注解的元素值是true
@DecimalMax(value=x)
BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSequence.
验证注解的元素值小于等于@ DecimalMax指定的value值
@DecimalMin(value=x)
BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSequence.
验证注解的元素值小于等于@ DecimalMin指定的value值
@Digits(integer=整数位数, fraction=小数位数)
BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSequence.
验证注解的元素值的整数位数和小数位数上限
@Future
java.util.Date, java.util.Calendar; Additionally supported by HV, if theJoda Time date/time API is on the class path: any implementations ofReadablePartial andReadableInstant.
验证注解的元素值(日期类型)比当前时间晚
@Max(value=x)
BigDecimal, BigInteger, byte, short,int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type ofCharSequence (the numeric value represented by the character sequence is evaluated), any sub-type of Number.
验证注解的元素值小于等于@Max指定的value值
@Min(value=x)
BigDecimal, BigInteger, byte, short,int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of CharSequence (the numeric value represented by the char sequence is evaluated), any sub-type of Number.
验证注解的元素值大于等于@Min指定的value值
@NotNull
Any type
验证注解的元素值不是null
@Null
Any type
验证注解的元素值是null
@Past
java.util.Date, java.util.Calendar; Additionally supported by HV, if theJoda Time date/time API is on the class path: any implementations ofReadablePartial andReadableInstant.
验证注解的元素值(日期类型)比当前时间早
@Pattern(regex=正则表达式, flag=)
String. Additionally supported by HV: any sub-type of CharSequence.
验证注解的元素值与指定的正则表达式匹配
@Size(min=最小值, max=最大值)
String, Collection, Map and arrays. Additionally supported by HV: any sub-type of CharSequence.
验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小
@Valid
Any non-primitive type(引用类型)
验证关联的对象,如账户对象里有一个订单对象,指定验证订单对象
@NotEmpty
CharSequence
,Collection
, Map and Arrays
验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@Range(min=最小值, max=最大值)
CharSequence, Collection, Map and Arrays,BigDecimal, BigInteger, CharSequence, byte, short, int, long and the respective wrappers of the primitive types
验证注解的元素值在最小值和最大值之间
@NotBlank
CharSequence
验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Length(min=下限, max=上限)
CharSequence
验证注解的元素值长度在min和max区间内
CharSequence
验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式
④书写Controller方法
⑤搭建jsp页面
<form action=
"${pageContext.request.contextPath }/first.do"
method=
"post"
>
<h1>数据验证</h1>
姓名:<input name=
"username"
/>${namemsg }<br/><br/>
成绩:<input name=
"score"
/>${scoremsg}<br/><br/>
电话:<input name=
"phone"
/>${phonemsg }<br/><br/>
<input type=
"submit"
value=
"注册"
/>
</form>
实现效果:
若都不进行输入:
若输入合法:
SpringMVC+MyBatis集成配置 http://www.linuxidc.com/Linux/2016-09/135212.htm
SpringMVC总结篇 http://www.linuxidc.com/Linux/2016-06/132659.htm
Spring+SpringMVC企业快速开发架构搭建 http://www.linuxidc.com/Linux/2015-09/122942.htm
SpringMVC的乱码处理 http://www.linuxidc.com/Linux/2015-07/120542.htm
Spring MVC+Spring3+Hibernate4开发环境搭建 http://www.linuxidc.com/Linux/2013-07/87119.htm
Spring MVC整合Freemarker基于注解方式 http://www.linuxidc.com/Linux/2013-02/79660.htm
基于注解的Spring MVC简单介绍 http://www.linuxidc.com/Linux/2012-02/54896.htm
SpringMVC详细示例实战教程 http://www.linuxidc.com/Linux/2015-06/118461.htm
SpringMVC错误页面配置 http://www.linuxidc.com/Linux/2016-12/138097.htm
SpringMVC 异常处理 http://www.linuxidc.com/Linux/2015-06/119049.htm
SpringMVC框架入门配置 IDEA下搭建Maven项目 http://www.linuxidc.com/Linux/2016-09/134918.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139333.htm
- springmvc的数据校验
- SpringMVC 数据校验
- SpringMVC 数据校验
- SpringMVC的数据校验
- SpringMVC数据校验
- SpringMVC数据校验
- springmvc中的数据校验
- SpringMVC数据校验
- SpringMVC的数据校验
- SpringMVC数据校验
- SpringMVC数据校验(三)
- springmvc数据校验
- 三.SpringMVC 数据校验
- SpringMVC中的数据校验
- SpringMVC中的数据校验
- SpringMvc之数据校验
- springmvc中数据校验
- SpringMVC(六)数据校验
- Linux打补丁常用命令
- [算法]详解关键路径算法
- Django Rest Framework - 实例PartyDemo 之 API文档
- C++ vector 赋值
- 微信小程序正式发布,一分钟了解什么是小程序!
- SpringMVC数据校验
- Spring Bean扩展接口 -- ApplicationContextAware源码分析
- 安卓.9.png图片制作
- 使用geronimo-javamail_1.4发送邮件的有关说明
- 【中级】2017项目集成管理工程师备考第五章-立项管理(下)
- 《iOS 7 Human Interface Guidelines中文版》读书笔记(2)
- Cassandra工具:cqlsh(the cql shell)
- 使用pycharm打开csv文件,csv文件中的中文出现乱码的解决方案
- 谷歌浏览器启动页被篡改为hao.7654.com的解决办法