1.@RequestBody json请求体校验
@Valid|@Validated配合BindingResult校验@RequetBody请求实体
@Data
public class AppDto implements Serializable {
@NotBlank(message = "应用名不能为空")
private String appName;
private Integer versionCode;
private String versionName;
@NotBlank(message = "描述不能为空")
private String description;
private int forceUpdate;
@NotBlank(message = "下载链接不能为空")
private String apkUrl;
}
public TResult updateOne(@PathVariable(AdminUrlConstants.ID) String id, @Valid @RequestBody AppDto dto, BindingResult bindingResult) {
return iAppService.updateApp(id, dto);
}
Controller方法或AOP
if (bindingResult != null && bindingResult.hasErrors()) {
throw new TTAException(bindingResult.getFieldError().getField() + ResultCodeEnum.VALIDATE_ERR.getMsg()
+ bindingResult.getFieldError().getDefaultMessage());
}
2.@RequestParam @PathVariable参数校验
@Validated
public class UserController extends BaseController {
@PostMapping(UrlConstants.USER_SET_NICK_PWD)
public TResult setNickNameAndPassword(@NotBlank(message = "userId不能为空") @RequestParam(value = "userId") String userId,
@Pattern(message = "不符合昵称规则(4~16位数字字母下划线)", regexp = RegexP.tAccount) @RequestParam(value = "nickName") String nickName,
@Pattern(message = "不符合密码规则(6~16位数字字母下划线)", regexp = RegexP.passWord) @RequestParam(value = "password") String password,
@RequestParam(value = "shareCode", required = false) String shareCode) {
3.@Valid @Validate区别,参考