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/ 源码 ...
随机推荐
- 深圳scala-meetup-20180902(2)- Future vs Task and ReaderMonad依赖注入
在对上一次3月份的scala-meetup里我曾分享了关于Future在函数组合中的问题及如何用Monix.Task来替代.具体分析可以查阅这篇博文.在上篇示范里我们使用了Future来实现某种non ...
- Windows 系统 IP 和端口的相关检测命令
查看本机IP地址 查看自己电脑的ip,使用 ipconfig 命令 ipconfig 检测指定IP是否联通 检测某个ip是否可以连通,直接使用 ping 命令 ping 219.148.111.212 ...
- SpringCloud-Eurake坑
首先遇到的问题 Eurake单台部署,很容易出现自我保护,发现web管理页面一大串红字警告 这个问题通过关闭自我保护机制可以简单解决..一般集群部署不会出现 eureka: server: renew ...
- 记Booking.com iOS开发岗位线上笔试
今晚参加了Booking的iOS职位线上笔试,结束后方能简单归纳一下. 关于测试内容: Booking采用了HackerRank作为测试平台,测试总时长为75分钟,总计4道题. 测试之前我很紧张,因为 ...
- Python Web Service
搞移动端有段时间了,一直使用别人的API,自己也只写过ASP.NET网站作为网络服务,相对来讲是很大的短板.虽然ASP.NET可以提供想要的web服务,但是其体量臃肿,响应速度非常慢,这点我非常不喜欢 ...
- maven个人总结
一.解压maven(apache-maven-3.6.0-bin.zip) ---apache-maven-3.6.0 ---bin(Binary书写) >存放二进制可执行的文件(命令),例如m ...
- Python九九乘法表三种方案
方法一: row = 1 # 定义起始行 while row <= 9: # 最大打印 9 行 col = 1 # 定义起始列 while col <= row: # 最大打印 row 列 ...
- Python系列之环境安装
Python可以实现强大的数据爬虫功能,并且数据分析与挖掘挺方便,也提供了大量的库,比如numpy, pands,matplotlib等.尤其,使用Python做机器学习也成了近年来的趋势,有人经常会 ...
- kafka的迁移干货
随着业务的发展, 服务器所在网段/机群不允许kafka继续保留在那, 需要移动到先机器上. 哎呀上面是废话,总的说就是: 2台老kafka不要了,数据要迁移到新的2台kafka上面.要求数据不丢失 通 ...
- redis linux(centos) 安装
前言 redis 大家都使用过, 可以安装在windows下, 也可以安装在linux下, 一般还是linux下安装比较多. 这里来介绍一下redis在linux下的安装 一. 下载 https:// ...