Spring boot字段注解形式格式控制(正则校验),以及拦截后的前端返回代码 --菜鸟小回

Spring boot字段注解形式格式控制(正则校验),以及拦截后的前端返回代码

注解配置

  • 直接在实体类字段上加上注解以拦截
@NotBlank(message = "请输入密码")
@Pattern(regexp = "\\w{6,18}$",message = "账号应为6-18位字符,不含特殊符号,添加失败")
private String userAccount;
@NotBlank(message = "请输入密码")
@Pattern(regexp = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,18}$",message = "账号应为6-18位字符,包含数字和字母,不含特殊符号,添加失败")
private String userPwd;

更多注解参考大佬博文:实体类字段的注解验证

配置拦截成功时的返回信息

Spring boot字段注解形式格式控制(正则校验),以及拦截后的前端返回代码 --菜鸟小回_第1张图片

  • @Valid:表示加入拦截
  • BindingResult result:用于格式化返回信息
  • returnUnifiedError(result):方法用于处理拦截返回信息
    相关代码:
# controller:
@PostMapping("/addNkbUser")
public ResultObject addNkbUser(@Valid @RequestBody NkbUserDTO nkbUserDTO,BindingResult result){
	if(result.hasErrors()){
		returnUnifiedError(result);
		return new ResultObject(StatusCode.ERROR,returnUnifiedError(result));
	}
	return iNkbUserService.addNkbUser(nkbUserDTO);
}
# 错误处理方法
public String returnUnifiedError(BindingResult bindingResult) {
	StringBuilder errorMsg = new StringBuilder();
	bindingResult.getAllErrors().stream().forEach(
			error -> {
				FieldError fieldError = (FieldError) error;
				errorMsg.append(fieldError.getDefaultMessage() + ";");
			}
	);
	return errorMsg.toString();
}

你可能感兴趣的:(Spring,Boot,Java技术,spring,boot,java)