springmvc4使用数据校验的时候需要使用hibernate-validator的包
第一步添加依赖
<dependency> <groupid>javax.validation</groupid> <artifactid>validation-api</artifactid> <version>2.0.0.final</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-validator</artifactid> <version>5.4.1.final</version> </dependency>
第二步添加校验注解
package com.demo.model; /* * spring4 用hibernate中的validation * * */ import org.hibernate.validator.constraints.email; import org.hibernate.validator.constraints.notblank; import javax.validation.constraints.size; public class user { private string username; private string password; private string nickname; private string email; public user(){ } public user(string username, string password, string nickname, string email) { this.username = username; this.password = password; this.nickname = nickname; this.email = email; } @notblank(message = "用户名不能为空") public string getusername() { return username; } public void setusername(string username) { this.username = username; } @size(min = 6,max = 20,message = "密码为6-20位") public string getpassword() { return password; } public void setpassword(string password) { this.password = password; } public string getnickname() { return nickname; } public void setnickname(string nickname) { this.nickname = nickname; } @email(message = "请输入合法的邮箱") public string getemail() { return email; } public void setemail(string email) { this.email = email; } }
第三步在控制器中对指定参数进行校验注解
注:bindingresult 必须紧跟在@validate
//@validated指定验证对象 bindingresult紧跟validated @requestmapping(value="/add",method = requestmethod.post) public string add(@validated user user, bindingresult br){ system.out.println(br); system.out.println(br.geterrorcount()); if(br.haserrors()) return "user/add"; users.put(user.getusername(),user); return "redirect:/user/users"; }
注:这个配置也会影响到校验是否生效
<mvc:annotation-driven/>
springboot—–数据验证validation(实战中,不推荐使用)
1、定义错误信息
在resources/下创建名称为validationmessages.properties
member.mid.notnull.error=用户名不允许为空 member.mid.email.error=用户名的注册必须输入正确的邮箱 member.mid.length.error=用户名的格式错误
2、给vo类添加注解
package com.zemel.micorboot.vo; import java.io.serializable; import java.util.date; import javax.validation.constraints.email; import javax.validation.constraints.notnull; import org.hibernate.validator.constraints.length; public class member implements serializable{ /** * */ private static final long serialversionuid = 1l; @notnull(message="{member.mid.notnull.error}") @email(message="{member.mid.email.error}") @length(min=6,message="{member.mid.length.error}") private string mid; private integer age; private double salary; private date birthday; public string getmid() { return mid; } public void setmid(string mid) { this.mid = mid; } public integer getage() { return age; } public void setage(integer age) { this.age = age; } public double getsalary() { return salary; } public void setsalary(double salary) { this.salary = salary; } public date getbirthday() { return birthday; } public void setbirthday(date birthday) { this.birthday = birthday; } }
3、控制添加验证
@valid member vo, bindingresult result package com.zemel.micorboot.controller; import java.util.list; import javax.validation.valid; import org.springframework.stereotype.controller; import org.springframework.validation.bindingresult; import org.springframework.validation.objecterror; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.responsebody; import com.zemel.micorboot.base.abstractbasecontroller; import com.zemel.micorboot.vo.member; @controller public class membercontroller extends abstractbasecontroller { @getmapping("/addpre") public string addpre(){ return "message/member_add"; } @getmapping("/add") @responsebody public object add(@valid member vo, bindingresult result){ system.out.println("【add方法】"+result.haserrors()); if(result.haserrors()){ list<objecterror> list = result.getallerrors(); list.foreach(oe -> { }); return result.getallerrors(); } return vo; } }
4、访问结果
[{“codes”:[“email.member.mid”,”email.mid”,”email.java.lang.string”,”email”],”arguments”:[{“codes”:[“member.mid”,”mid”],”arguments”:null,”defaultmessage”:”mid”,”code”:”mid”},[],{“defaultmessage”:”.*”,”arguments”:null,”codes”:[“.*”]}],”defaultmessage”:”ç¨æ·åç注åå¿é¡»è¾å¥æ£ç¡®çé®ç®±”,”objectname”:”member”,”field”:”mid”,”rejectedvalue”:”xx”,”bindingfailure”:false,”code”:”email”}]
以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。
黄山市民网:https://www.huangshanshimin.com/