@Valid怎么自定义验证信息
时间: 2023-10-18 11:24:52 浏览: 37
可以使用`@Valid`注解结合`BindingResult`对象来自定义验证信息。
首先,在需要验证的方法中,添加`@Valid`注解和`BindingResult`参数:
```java
@PostMapping("/users")
public String createUser(@Valid User user, BindingResult result) {
// ...
}
```
然后,在`User`类中定义需要验证的字段,并添加对应的验证规则和自定义错误信息:
```java
public class User {
@NotBlank(message = "用户名不能为空")
private String username;
@Size(min = 6, max = 20, message = "密码长度必须在6-20之间")
private String password;
// ...
}
```
其中,`@NotBlank`和`@Size`是常用的验证注解,可以根据需要选择其他注解。
最后,在需要自定义错误信息的地方,使用`result.getFieldError()`方法获取对应字段的错误信息,并进行处理:
```java
@PostMapping("/users")
public String createUser(@Valid User user, BindingResult result) {
if (result.hasErrors()) {
String errorMessage = result.getFieldError().getDefaultMessage();
// 处理错误信息
}
// ...
}
```
上述代码中,`result.getFieldError()`方法返回的是一个`FieldError`对象,其中包含了字段名和默认的错误信息。可以通过该对象的其他方法获取更多的错误信息。