参数绑定校验注解
@Valid @Validatd 注解均可使用,可以注解在方法形参与成员变量上,但效果有细微差异;
根据请求方式的不同而抛出不同的异常
表单提交 异常处理类 BindException
public class BindException extends Exception implements BindingResult {
private final BindingResult bindingResult;
public BindException(BindingResult bindingResult) {
Assert.notNull(bindingResult, "BindingResult must not be null");
this.bindingResult = bindingResult;
}
...
请求体(json)提交 异常处理类 MethodArgumentNotValidException
public class MethodArgumentNotValidException extends BindException {
private final MethodParameter parameter;
public MethodArgumentNotValidException(MethodParameter parameter, BindingResult bindingResult) {
super(bindingResult);
this.parameter = parameter;
...
}
```
处理以上异常时可以先获取·bindingResult· 对象,校验异常信息存储再该对象中;
```java
//获取字段校验异常信息
FieldError fieldError = exception.getBindingResult().getFieldError();
//获取校验不通过的字段
fieldError.getField();
//获取校验不通过的提示信息
fieldError.getDefaultMessege();
文章讲述了在SpringMVC中,@Valid和@Validated注解用于参数绑定和校验,它们可以应用在方法参数和成员变量上。不同请求方式可能会抛出不同的异常,如BindException用于表单提交,而MethodArgumentNotValidException处理JSON请求体的校验失败。当出现这些异常时,可以通过BindingResult对象获取校验错误信息,如字段名和错误消息,以便提供精确的反馈给用户。
3330

被折叠的 条评论
为什么被折叠?



