<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
package com.xc.leis.configuration;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
*
* @Author: xxx
* @Date: 2021-07-03 10:39
* @Description: xxx
*/
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(BindException.class)
@ResponseBody
public Map validationErrorHandler(BindException ex) {
//1.此处先获取BindingResult
BindingResult bindingResult = ex.getBindingResult();
//2.获取错误信息
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
//3.组装异常信息
Map<String,String> message = new HashMap<>();
for (FieldError fieldError : fieldErrors) {
message.put(fieldError.getField(),fieldError.getDefaultMessage());
}
return message;
}
}
package com.xc.leis.pojo;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
/**
* Created with IntelliJ IDEA.
*
* @Author: xxx
* @Date: 2021-07-03 10:05
* @Description: xxx
*/
public class Msg {
@Min(1)
private int id;
@NotEmpty(message = "姓名必须指定:name不能为空!")
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Msg{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
package com.xc.leis.service;
import com.xc.leis.pojo.Msg;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
/**
* Created with IntelliJ IDEA.
*
* @Author: xxx
* @Date: 2021-07-03 10:03
* @Description: xxx
*/
@RestController
@RequestMapping("test")
public class IndexController {
@RequestMapping("v1")
public String v1(@Valid Msg msg){
return msg.toString();
}
}