JSR-303是sun的基于注解的JavaBean校验规范,仅仅是一个规范,没有具体实现。Spring也没有对其进行实现,要想在SpringMVC中需要使用JSR-303就需要提供一个对JSR-303规范的实现,最常见的是Hibernate Validator。
1. pom依赖
<!-- JSR-303 -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<!-- Hibernate Valiadator -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.1.Final</version>
</dependency>
2. 在${dispatcherServletName}-servlet.xml中配置,最简化为:
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
<!-- <property name="validationMessageSource" ref="messageSource" /> -->
</bean>
这里使用了各种默认的message,如需国际化等配置,
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:messages</value>
<value>classpath:org/hibernate/validator/ValidationMessages</value>
</list>
</property>
<property name="useCodeAsDefaultMessage" value="true" />
<property name="defaultEncoding" value="UTF-8" />
<property name="cacheSeconds" value="60" />
</bean>
3. 对应的POJO为
package example.entity;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
public class User {
@Pattern(regexp = "\\d+", message = "number only")
private String userId;
@Size(min = 3, max = 10, message = "User Name must be between 3 and 10 characters long")
private String userName;
//getters and setters
}
4. SpringMVC的controller层代码
@RequestMapping(value = "/create", method = RequestMethod.POST)
public String create(Model model, @Valid User user, BindingResult bindingResult) throws InterruptedException, IOException {
if (bindingResult.hasErrors()) {
return "createUser";
}
userMap.put(user.getUserId(), user);
return "redirect:/user";
}
@Valid注解是JSR-303的一部分, 它表明参数在传入之前需要进行校验,否则,不予校验。
如果校验User出错的话,错误将会作为第二个参数以BindingResult的形式传递给create()方法。create()方法调用hasErrors()去做对应处理。
相关推荐
这是我的这篇博文的源码:SpringMVC与SiteMesh2.4无缝整合并借助JSR303规范实现表单验证,博文地址:http://blog.csdn.net/jadyer/article/details/7574668
- **数据校验**:SpringMVC提供了强大的数据验证机制,可以通过@Validated注解结合JSR303/JSR349标准来实现自动数据校验。 #### 十、处理JSON:使用HttpMessageConverter - **JSON处理**:使用...
而Hibernate Validate是Hibernate ORM项目的一个子模块,它是一个强大的验证框架,遵循JSR-303和JSR-349标准,用于在Java应用中执行数据校验。 **SpringMVC** SpringMVC是Spring框架的核心组件之一,它提供了一种...
通过创建一个简单的登录表单,用户输入用户名和密码,Controller接收请求,调用Service进行验证,Service通过DAO层与数据库交互,最后返回结果给前端。整个过程展示了SSH框架整合后的高效协作。 综上所述,SSH框架...
SpringMVC集成了JSR-303/JSR-349 Bean Validation,用于表单验证。通过在模型对象上添加验证注解,如@NotNull、@Size等,可以自动进行客户端和服务器端的验证。验证结果可以通过BindingResult对象获取并展示给用户。...
1. 数据验证:使用Hibernate Validator或JSR-303进行表单验证。 2. 文件上传下载:使用MultipartFile处理文件上传,OutputStream进行文件下载。 3. 异步处理:使用@Async注解实现异步方法,提高系统响应速度。 4. ...
- **MVC验证**:使用JSR-303/JSR-349提供的注解进行数据验证。 - **RESTful API**:通过HTTP动词和资源URL设计,构建RESTful风格的服务。 5. **最佳实践** - 使用Spring Boot简化配置,利用自动配置功能。 - ...
同时,它也提供了 JSR-303/JSR-349 验证标准,可以方便地对表单数据进行验证。 **10. 异步支持** SpringMVC 提供了异步请求处理的支持,允许开发人员编写异步 Controller 方法,提高系统性能和响应速度。 通过以上...
- hibernate-validator:提供JSR-303/JSR-349标准的数据验证功能,可以为Java Bean定义校验规则。 4. **File Upload**: - commons-fileupload:Apache Commons FileUpload库,处理HTTP请求中的多部分表单数据,...
例如,可以使用Spring的`@ExceptionHandler`处理异常,使用JSR-303/JSR-349 Bean Validation进行输入验证,以及使用缓存来提高性能。 总结起来,SpringMVC提供了一套完善的机制,使得开发者能够轻松地构建CRUD应用...
6. **数据绑定与验证**:SpringMVC支持自动将请求参数绑定到控制器方法的参数,同时支持JSR-303/JSR-349数据验证,确保输入数据的合法性。 7. **AOP(面向切面编程)集成**:SpringMVC可以与Spring的AOP模块结合,...
SpringMVC可以通过`@Valid`注解配合JSR-303/JSR-349标准进行数据验证,确保输入的有效性。 10. **视图技术**: 视图可以是JSP、FreeMarker、Thymeleaf等,SpringMVC通过视图解析器如InternalResourceViewResolver...
同时,使用 `@Valid` 注解可以实现表单验证,结合 JSR-303/JSR-349 提供的校验注解,如 `@NotNull`, `@Size` 等。 8. **Aspect-Oriented Programming (AOP) 支持** Spring MVC 集成了 Spring AOP,可以用于实现如...
对于数据验证,可以利用JSR-303/JSR-349提供的Bean Validation,或使用Hibernate Validator实现表单验证。 九、整合测试 使用JUnit和Mockito进行单元测试,验证各个组件是否正常工作。对于Spring MVC应用,可使用...
Hibernate Validator是JSR-303/JSR-349规范的参考实现,它是Hibernate项目的一部分,专门用于Java Bean的验证。它提供了一套强大的API和注解,使得开发者能够方便地定义和执行验证规则,有效防止因用户输入不合法...
在IT行业中,尤其是在Java开发领域,`Hibernate Validator`是一个至关重要的工具,它是JSR-303/JSR-349(Java Bean Validation)规范的实现,用于验证对象的属性值。`SpringMVC`是Spring框架的一部分,用于处理Web...
9. **验证**:学习使用JSR 303/349 Bean Validation进行表单验证,以及如何在SpringMVC中集成这些验证规则。 10. **RESTful API**:理解RESTful风格的URL设计,以及如何在SpringMVC中创建REST服务,包括使用HTTP...
9. **Validation**:Spring MVC 提供了数据验证功能,可以通过 @Valid 注解配合 Hibernate Validator 或 JSR-303 规范进行表单验证。 10. **国际化与本地化**:Spring MVC 支持国际化和本地化,可以通过消息资源...
- **数据校验框架**:SpringMVC集成了JSR 303/JSR 349标准,支持字段级别的验证。 - **校验注解**:如`@NotNull`、`@Size`等,可以在POJO类字段上使用。 - **错误消息定制**:可以通过国际化资源文件来定制错误消息...
- `@Valid`: 进行数据校验,结合JSR 303/349的注解实现。 6. **拦截器(Interceptor)** - 可以自定义拦截器实现预处理和后处理逻辑,如登录检查、日志记录等。 7. **异常处理** - 异常处理器可以全局统一处理...