Spring表单验证(Spring Validation)
1.基本介绍
之前在项目中做的后台验证就是Spring Validation,最近闲下来了,就来整理一下。
从Spring3.0开始,Spring MVC中提供了对java校验的API支持。在Spring MVC中不需要额外配置,就可以使用。
注解 | 描述 |
@AssertFalse | 所注解的元素必须为boolean类型,并且值为false |
@AssertTrue | 所注解的元素必须为boolean类型,并且值为true |
@DecimalMax | 所注解的元素必须为数字,并且值要小于或等于给定的BigDecimalString值 |
@DecimalMin | 所注解的元素必须为数字,并且值要大于或等于给定的BigDecimalString值 |
@Digits | 所注解的元素必须为数字,并且它的值必须有指定的位数 |
@Future | 所注解的元素必须为一个将来的日期 |
@Max | 所注解的元素必须为数字,并且值要小于或等于给定的值 |
@Min | 所注解的元素必须为数字,并且值要大于或等于给定的值 |
@NotNull | 所注解的元素不能为null |
@Null | 所注解的元素必须为null |
@Past | 所注解的元素的值必须是一个已过去的日期 |
@Pattern | 所注解的元素必须匹配给定的正则表达式 |
@Size | 所注解的元素必须是String、数组、集合,并且长度在给定范围内 |
2.代码展示
user.java
/**
* TODO 用户信息PO <br/>
* TODO 用户信息类
* @author tzy
*/
@Entity
@Table(name = "userInfo")
public class UserInfoPO implements Serializable{ /**
*
*/
private static final long serialVersionUID = 1L;
/**
* 人员id
*/
@Id
@GenericGenerator(name = "systemUUID", strategy = "uuid")
@GeneratedValue(generator = "systemUUID")
@Column(name = "userInfoId", length = 32)
private String userInfoId;
/**
* 用户id
*/
@OneToOne(cascade = { CascadeType.REFRESH }, fetch=FetchType.LAZY)
@JoinColumn(name = "userId")
private UserPO user;
/**
* 姓名
*/
@NotBlank(message = "联系人为空")
@Column(name = "name", length = 20)
private String name;
/**
* 性别 1.男 2.女
*/
@Column(name = "sex", length = 1)
private Integer sex;
/**
* 学历
*/
@Column(name = "qualification", length = 20)
private String qualification;
/**
* 出生日期
*/
@Temporal(TemporalType.DATE)
@Column(name = "birthDay")
private Date birthDay;
/**
* 身份证
*/
@Column(name = "idCard", length = 19)
private String idCard;
/**
* 固话
*/
@Column(name = "tel", length = 12)
private String tel;
/**
* 手机号
*/
@NotBlank(message = "手机号为空")
@Size(min = 11, max = 11, message = "手机号长度有误")
@Column(name = "phone", length = 12)
private String phone;
/**
* 邮箱
*/
@NotBlank(message = "邮箱为空")
@Email(message = "用户名格式有误")
@Column(name = "email", length = 50)
private String email;
/**
* 图片
*/
@Column(name = "image", length = 255)
private String image;
/**
* 参加工作时间
*/
@Temporal(TemporalType.DATE)
@Column(name = "joinWork")
private Date joinWork;
/**
* 入职时间
*/
@Temporal(TemporalType.DATE)
@Column(name = "hireDate")
private Date hireDate;
/**
* 工作经历
*/
@Column(name = "wordDes", length = 400)
private String wordDes;
/**
* 地址
*/
@Column(name = "address", length = 100)
private String address;
/**
* 备注
*/
@Column(name = "comment", length = 255)
private String comment;
/**
* 机构名称
*/
@NotBlank(message = "用户名称为空")
@Column(name = "orgName", length = 100)
private String orgName;
/**
* 传真
*/
@Column(name = "fax", length = 20)
private String fax; public String getUserInfoId() {
return userInfoId;
} public void setUserInfoId(String userInfoId) {
this.userInfoId = userInfoId;
} public UserPO getUser() {
return user;
} public void setUser(UserPO user) {
this.user = user;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getSex() {
return sex;
} public void setSex(Integer sex) {
this.sex = sex;
} public String getQualification() {
return qualification;
} public void setQualification(String qualification) {
this.qualification = qualification;
} public Date getBirthDay() {
return birthDay;
} public void setBirthDay(Date birthDay) {
this.birthDay = birthDay;
} public String getIdCard() {
return idCard;
} public void setIdCard(String idCard) {
this.idCard = idCard;
} public String getTel() {
return tel;
} public void setTel(String tel) {
this.tel = tel;
} public String getPhone() {
return phone;
} public void setPhone(String phone) {
this.phone = phone;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} public String getImage() {
return image;
} public void setImage(String image) {
this.image = image;
} public Date getJoinWork() {
return joinWork;
} public void setJoinWork(Date joinWork) {
this.joinWork = joinWork;
} public Date getHireDate() {
return hireDate;
} public void setHireDate(Date hireDate) {
this.hireDate = hireDate;
} public String getWordDes() {
return wordDes;
} public void setWordDes(String wordDes) {
this.wordDes = wordDes;
} public String getComment() {
return comment;
} public void setComment(String comment) {
this.comment = comment;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} public String getOrgName() {
return orgName;
} public void setOrgName(String orgName) {
this.orgName = orgName;
} public String getFax() {
return fax;
} public void setFax(String fax) {
this.fax = fax;
} }
...controller
@RequestMapping("/toUserInfoModifyDeal")
@UserLog(type = "修改用户信息", level = "1", desc = "修改用户信息")
public @ResponseBody String toUserInfoModifyDeal(
@Valid UserInfoPO userInfoPO, BindingResult result) {
if (result.hasErrors()) {
List<ObjectError> list = result.getAllErrors();
for (int i1 = 0; i1 < list.size(); i1++) {
}
return "用户信息修改失败!";
}
......
}
Spring表单验证(Spring Validation)的更多相关文章
- 【jQuery基础学习】06 jQuery表单验证插件-Validation
jQuery的基础部分前面都讲完了,那么就看插件了. 关于jQuery表单验证插件-Validation validation特点: 内置验证规则:拥有必填.数字.E-Mail.URL和信用卡号码等1 ...
- Spring表单验证
表单验证 给表单添加验证的步骤如下 1.在 pom.xml 里添加 hibernate-validator 依赖http://hibernate.org/validator/documentation ...
- jQuery学习之路(8)- 表单验证插件-Validation
▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 ...
- 实例讲解表单验证插件Validation的应用
jquery.Validation是一款优秀的jquery插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性.现在 结合实际情况,我把项目中经常要用到的验证整理成一个实例 ...
- jQuery 表单验证插件——Validation(基础)
这个插件不错,是用jquery写的.能进行表单验证.我喜欢它的原因是因为 1.他有自带的验证规则 2.你可以自己写验证规则 3.可以通过ajax与后台交互,与后台数据比较.最后返回结果!我在表单中要验 ...
- JQuery 表单验证--jquery validation
jquery validation,表单验证控件 官方地址 :http://jqueryvalidation.org/ jquery表单验证 默认值校验规则 jquery表单验证 默认的提示 < ...
- jQuery插件-表单验证插件-Validation
1.Validation简介 标准的验证方法库 1)内置验证规则:必填,数字,E-Mail,URL和信用卡号码等19类内置验证规则. 2)自定义验证规则:自定义 3)验证信息提示:默认了验证信息提示, ...
- 【jQuery】学习jQuery插件的使用与写法(表单验证插件-validation)
最新最全的插件可以从jQuery官方网站的插件板块下载,网站地址为:http://plugins.jquery.com/ Validation优点:内置验证规则:自定义验证规则:简单强大的验证信息提示 ...
- 插件使用一表单验证一validation
jquery-validation是一款前端经验js插件,可以验证必填字段.邮件.URL.数字范围等,在表单中应用非常广泛. 官方网站 https://jqueryvalidation.org/ 源码 ...
随机推荐
- MSRA-TD5000数据集使用详解
中文检测的数据集,目前最火的应该是清华的CTW,https://ctwdataset.github.io/ 但是它的数据集只存储在微云和google driver,微云空间受限不能完全保存,所以下载的 ...
- react小知识2
概述 这是我学习react的过程中,学到的一些简便写法,都是利用了es6的特性,记录下来供以后开发时参考,相信对其他人也有用. 参考资料:dva.js 知识导图 析构 我们也可以析构传入的函数参数. ...
- Nginx 负载均衡与反向代理
通过设置权重来轮询 weight server 192.168.1.62 weight=5 server 192.168.63 weight=1 ip_hash 第3方均衡策略 fair url_h ...
- OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —9.块存储服务(cinder)部署配置
块存储服务部署相关块存储服务(cinder)为实例提供块存储.存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的.还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等.典型 ...
- c++中的.hpp文件
http://blog.chinaunix.net/uid-24118190-id-75239.html hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的 ...
- 深度解析 Vue 响应式原理
深度解析 Vue 响应式原理 该文章内容节选自团队的开源项目 InterviewMap.项目目前内容包含了 JS.网络.浏览器相关.性能优化.安全.框架.Git.数据结构.算法等内容,无论是基础还是进 ...
- web自动化测试---xpath方式定位页面元素
在实际应用中,如果存在多个相同元素,包括属性相同时,一般会选用这种方式,当然如果定位属性唯一的话,也是可以使用的,不过这种方式没有像id,tag,name等容易理解,下面讲下xpath定位元素的方法 ...
- web自动化测试---测试环境的部署
当前我的测试环境配置如下: python3.6 下载地址: https://www.python.org/downloads/release/python-365/ 选择windows版本,下载完成后 ...
- Python日常实践(1)——SQL Prompt的Snippets批量整理
引言 个人平时在写sql脚本的时候会使用到SQL Prompt这款插件,除了强大的智能提示和格式化sql语句功能,我还喜欢使用Snippets代码段功能.比如我们可以在查下分析器输入ssf后按Tab键 ...
- Tensflow的equal函数
一.函数 tf.equal() equal( x, y, name=None ) tf.equal(A, B)是对比这两个矩阵或者向量的相等的元素,如果是相等的那就返回True,反正返回False,返 ...