访问http://localhost:8089/mytest/find?identity_no= ,对identity_no做不能为空校验
实现的效果:捕获异常,前端提示”bad request“,运行后台打印判空的提示
实现方式:在Controller类的方法里增加判空,注意Controller类要加@Validated
@CrossOrigin
@GetMapping(value = "/find")
public Object find(@NotEmpty(message = "identity_no不能为空") String identity_no){
System.out.println(identity_no);
Quota quota = quotaTestService.selectByIdentity_no(identity_no);
return quota;
}
编写一个统一异常捕获类
package com.qml.api.util;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.ValidationException;
import java.util.Set;
//统一异常捕获
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ValidationException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public String handle(ValidationException exception) {
if(exception instanceof ConstraintViolationException){
ConstraintViolationException exs = (ConstraintViolationException) exception;
Set<ConstraintViolation<?>> violations = exs.getConstraintViolations();
for (ConstraintViolation<?> item : violations) {
//打印验证不通过的信息
System.out.println(item.getMessage());
}
}
return "bad request" ;
}
}