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/ 源码 ...
随机推荐
- SpringCloud-Eurake坑
首先遇到的问题 Eurake单台部署,很容易出现自我保护,发现web管理页面一大串红字警告 这个问题通过关闭自我保护机制可以简单解决..一般集群部署不会出现 eureka: server: renew ...
- 人脸检测第一文---A Dream of Spring
人脸识别研究的人很多,可是,真正具有划时代意义的还要当属Paul Viola的一篇文章<RobustReal-time Object Detection>.这篇文章让 人脸识别在实际应用中 ...
- iOS开发笔记-根据frame大小动态调整fontSize的自适应文本及圆形进度条控件的实现
最近同样是新App,设计稿里出现一种圆形进度条的设计,如下: 想了想,圆形进度条实现起来不难,但是其中显示百分比的文本确需要自适应,虽然可以使用时自己设定文本字体的大小,但是这样显得很麻烦,也很low ...
- 使用jedis连接redis
1.导入jar包,添加pom依赖<dependency><groupId>redis.clients</groupId><artifactId>jedi ...
- 深入理解css3中 nth-child 和 nth-of-type 的区别
在css3中有两个新的选择器可以选择父元素下对应的子元素,一个是:nth-child 另一个是:nth-of-type. 但是它们到底有什么区别呢? 其实区别很简单::nth-of-type为什么要叫 ...
- 获取CPU ID--查看CPU数量/核数
Ubuntu 获取CPU序列号或者主板序列号 CPU ID 代码: sudo dmidecode -t 4 | grep ID ID: 54 06 05 00 FF FB 8B 0F 主板序列号 代码 ...
- FF笔试题
一.单选题 1.下列关于继承的描述错误的是( ) A. 在Java中允许定义一个父类的引用,指向子类对象 B. 在Java中继承是通过extends关键字来描述的,而且只允许继承自一个直接父类 ...
- BF算法(模式匹配)
BF算法 (Brute-Force算法) 一种简单的模式匹配算法,目的是寻找模式串p是否在目标串s中有出现. 思想:先从第一个字符开始匹配,如果p[j]==s[i],那么继续向下比较,一旦不相等,即回 ...
- 使用InstallUtil发布windows服务
发布Windows Service的方法 1. 在默认窗口Service1中右键Add Install,自动生成两个类. 2. 修改serviceInstaller1的属性: a)ServiceNa ...
- nginx介绍(六) - 通过反向代理实现跨域访问
前言 跨域访问问题, 相信很多人都遇到过, 并且都用不同的办法去解决过. 方法有很多种, 不一一叙述了. 这里主要使用nginx反向代理来解决跨域问题. 啥是跨域 假如你是百度开发人员, 在百度页面去 ...