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/ 源码 ...
随机推荐
- 「PKUWC2018」随机游走(min-max容斥+FWT)
「PKUWC2018」随机游走(min-max容斥+FWT) 以后题目都换成这种「」形式啦,我觉得好看. 做过重返现世的应该看到就想到 \(min-max\) 容斥了吧. 没错,我是先学扩展形式再学特 ...
- lombok的介绍及使用
参考:https://blog.csdn.net/motui/article/details/79012846 介绍 在项目中使用Lombok可以减少很多重复代码的书写.比如说getter/sette ...
- axios的Get和Post方法封装及Node后端接收数据
最近有做一个Vue的小项目,其中用到了尤大大推荐使用的axios,但是使用的过程中遇到了各种各样的问题,所以这次也是将一些心得分享出来. 安装的流程我就简单说一下下吧,在一个自己新建的文件夹中命令行中 ...
- 和嗲妹妹面试python,是种什么体验?
这次给大家讲讲我2年前去爱奇艺面试高级运维开发岗位的经历,希望对大家带来一些帮助. 公众号「Python专栏」后台回复:自动化运维平台,获取整套自动化运维平台的源代码 聊骚阶段 嗲妹妹:你好,我是爱奇 ...
- 记hangfire后台任务运行一段时间后不运行了。
什么是Hangfire Hangfire 是一个开源的.NET任务调度框架,目前1.6+版本已支持.NET Core.个人认为它最大特点在于内置提供集成化的控制台,方便后台查看及监控. https:/ ...
- web自动化测试---xpath方式定位页面元素
在实际应用中,如果存在多个相同元素,包括属性相同时,一般会选用这种方式,当然如果定位属性唯一的话,也是可以使用的,不过这种方式没有像id,tag,name等容易理解,下面讲下xpath定位元素的方法 ...
- Ubuntu下安装程序的三种方法(转)
引言 在Ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. 一.apt-get方法 ...
- 安装CDH5 hadoop2.3.0 NodeManager 没有启动
今天在安装hadoop后,启动start-yarn.sh后,nodemanager起不起来,后来查看DN节点的日志,报了以下一个错误: FATAL org.apache.hadoop.yarn.ser ...
- Android_Fragment和Activity之间的通信
Fragment 的生命周期是随着activity变化而变化的. 如果activity要给在运行的时候给fragment传人数据则需要fragment实现一个自定义的接口,并且实现接口里面的方法,在a ...
- Android快速实现二维码扫描--Zbar
Android中二维码扫描的最常用库是zxing和zbar,上一篇<Android快速实现二维码扫描–Zxing>介绍了Zxing.这次说Zbar,Zbar速度极快,我就比较常用,项目地址 ...