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)的更多相关文章

  1. 【jQuery基础学习】06 jQuery表单验证插件-Validation

    jQuery的基础部分前面都讲完了,那么就看插件了. 关于jQuery表单验证插件-Validation validation特点: 内置验证规则:拥有必填.数字.E-Mail.URL和信用卡号码等1 ...

  2. Spring表单验证

    表单验证 给表单添加验证的步骤如下 1.在 pom.xml 里添加 hibernate-validator 依赖http://hibernate.org/validator/documentation ...

  3. jQuery学习之路(8)- 表单验证插件-Validation

    ▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 ...

  4. 实例讲解表单验证插件Validation的应用

    jquery.Validation是一款优秀的jquery插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性.现在 结合实际情况,我把项目中经常要用到的验证整理成一个实例 ...

  5. jQuery 表单验证插件——Validation(基础)

    这个插件不错,是用jquery写的.能进行表单验证.我喜欢它的原因是因为 1.他有自带的验证规则 2.你可以自己写验证规则 3.可以通过ajax与后台交互,与后台数据比较.最后返回结果!我在表单中要验 ...

  6. JQuery 表单验证--jquery validation

    jquery validation,表单验证控件 官方地址 :http://jqueryvalidation.org/ jquery表单验证 默认值校验规则 jquery表单验证 默认的提示 < ...

  7. jQuery插件-表单验证插件-Validation

    1.Validation简介 标准的验证方法库 1)内置验证规则:必填,数字,E-Mail,URL和信用卡号码等19类内置验证规则. 2)自定义验证规则:自定义 3)验证信息提示:默认了验证信息提示, ...

  8. 【jQuery】学习jQuery插件的使用与写法(表单验证插件-validation)

    最新最全的插件可以从jQuery官方网站的插件板块下载,网站地址为:http://plugins.jquery.com/ Validation优点:内置验证规则:自定义验证规则:简单强大的验证信息提示 ...

  9. 插件使用一表单验证一validation

    jquery-validation是一款前端经验js插件,可以验证必填字段.邮件.URL.数字范围等,在表单中应用非常广泛. 官方网站 https://jqueryvalidation.org/ 源码 ...

随机推荐

  1. “全栈2019”Java多线程第三十七章:如何让等待的线程无法被中断

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  2. Eclipse 中 Debug 调试 java 代码一直报 Source not found

    今天使用eclipse的debug调试代码,一直没法正常调试,一按F6就提示Source not found 根据提示发现可能是另一个项目影响了,所以把另一个项目Close Project,这次直接t ...

  3. 在IIS建立的ftp,可以成功连接登录,但是不显示目录

    IIS建立FTP站点很简单,不作说明 Windows的防火墙也开通了FTP端口(默认21),Telnet也是通的,在本机可以打开,在局域网其它电脑或外网也可以连接,但就是不显示目录,如果用浏览器打开提 ...

  4. requsets模块的学习

    requests模块的学习 使用之前 pip install requests 发起get,post,请求获取响应 response = requests.get(url,headers) # 发起g ...

  5. 设置select,option文本居中

    设置select,option文本居中 可以通过 padding 属性设置内边距,使它看上去居中: select{ # 从左到右依次表示上内边距,右内边距,下内边距,左内边距: padding :0 ...

  6. Windows.UI.Cred.dll损坏导致不能设置 PIN 密码

    心血来潮,重装系统. 然后发现不能设置 PIN,UWP界面在输完两个PIN后直接卡死(第一次设置的时候不需要输入第一行的PIN) google无果,打开系统日志,发现 上网下载一个对应版本的Windo ...

  7. vue 去哪网项目 学习笔记(一)

    启动项 mian.js 是整个项目的入口程序 定义局部组建 components 是定义的局部组建 template 渲染app里的内容 单文件组建 单文件组建是以vue 结尾的内容 app组建的内容 ...

  8. python(32)——【shelve模块】【xml模块】

    一. shelve模块 json和pickle模块的序列化和反序列化处理,他们有一个不足是在python 3中不能多次dump和load,shelve模块则可以规避这个问题. shelve模块是一个简 ...

  9. linux中awk的使用

    在linux中awk绝对是核心工具,特别是在查找搜索这一领域,和掌握sed命令一样重要 下面为awk的一些基本知识,基于这些知识,可以让你随意操控一个文件: 在awk中:()括号为条件块,{}为执行的 ...

  10. php实现聊天室功能

    原理:长连接 一.长连接与短连接 短连接:客户端与服务端每进行一次报文收发交易时才进行通讯连接.交易完毕后立即断开连接. 长连接:客户端与服务端先建立连接, 连接建立后不断开,然后在进行报文发送和接收 ...