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。