1.dto
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
相关maven
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.0.Final</version>
</dependency>
dto层
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class UserDto {
@NotBlank(message = "用户名或密码不正确!")
private String username;
@NotBlank(message = "用户名或密码不正确!")
private String password;
@NotBlank(message = "验证码不可为空!")
private String validateCode;
}
controller层
import org.springframework.validation.BindingResult;
@PostMapping("register")
public Result<String> register(@Valid @RequestBody UserDto userDto, BindingResult bindingResult){
if(bindingResult.hasErrors()){
return Result.fail(bindingResult.getFieldError().getDefaultMessage());
}
String result = userService.register(userDto);
return Result.success(result);
}
定制统一的controller通过exception处理报错
@PostMapping("register")
public Result<String> register(@Valid @RequestBody UserDto userDto){
String result = userService.register(userDto);
return Result.success(result);
}
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
@ControllerAdvice
public class ControllerException {
@ResponseBody
@ExceptionHandler(MethodArgumentNotValidException.class)
public Object handleValidException(MethodArgumentNotValidException e){
return Result.fail(e.getBindingResult().getFieldError().getDefaultMessage());
}
}
(Result是自定义的统一返回)