使用JSR 303验证,在controller类中的方法中进行验证
时间: 2024-11-04 20:10:34 浏览: 42
在Java中,JSR 303(也称为Hibernate Validator)是一个用于提供客户端输入验证的标准规范。要在Spring MVC的Controller类中的方法中利用JSR 303进行验证,你需要按照以下步骤操作:
1. **添加依赖**:首先,需要在项目的pom.xml文件中添加 Hibernate Validator 的依赖。
```xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.5.Final</version>
</dependency>
```
2. **配置Validator**:在Spring MVC配置中启用Bean Validation,通常在`WebMvcConfigurer`接口的实现中。
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addDefaultFormatters(new InternationalizedDateTimeFormatter());
}
@Bean
public LocalValidatorFactoryBean validator() {
return new LocalValidatorFactoryBean();
}
}
```
3. **标记字段**:在Controller类的方法参数或请求模型对象上添加`@Valid`注解,表示该部分数据需要验证。
```java
@PostMapping("/save")
public String save(@ModelAttribute("myModel") @Valid MyModel model, BindingResult result) {
if (result.hasErrors()) {
// 验证失败,处理错误信息
} else {
// 验证通过,保存数据
}
return "success";
}
class MyModel {
@NotNull(message = "Field cannot be null.")
private String myField;
// 添加其他字段及其验证规则
}
```
4. **检查结果**:`BindingResult`参数会包含所有验证的结果,你可以遍历它来获取每个字段的错误消息。
阅读全文