@Valid放在controller类上无效
时间: 2024-10-16 17:03:48 浏览: 15
springboot @Valid注解对嵌套类型的校验功能
5星 · 资源好评率100%
`@Valid` 是Spring MVC中用于数据校验的一个注解,它通常放置在控制器(Controller)的处理请求方法(如`RequestMapping`方法)的参数上,目的是验证传递到方法的模型属性(通常是来自前端表单的数据)。如果将`@Valid`直接放在了控制器类上,而没有与某个特定的方法参数关联,那么它的效果会有限。
当你在控制器类上使用`@Valid`,它不会自动对控制器本身的字段进行验证,而是需要配合其他的约束条件,比如`@ModelAttribute`、`@PostMapping`等,并且需要在处理方法参数上明确指定一个带有`@Validated`的实体类,以便触发数据校验。
正确的使用方式可能是这样的:
```java
@PostMapping("/submit")
public String submit(@ModelAttribute @Valid MyForm form) {
// 这里form会被Spring进行数据校验
if (form isValid) {
// 处理提交的数据
} else {
// 返回错误信息给前端
}
}
```
阅读全文