`
l28554768
  • 浏览: 37572 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

springmvc对jsr303验证

 
阅读更多

最近在项目中使用了jsr303验证,jsr303是一个数据验证的规范,Hibernate Validator 是 Bean Validation 的参考实现。由于spring3之后,对jsr303提供了支持,因此,在项目中使用了spring3,采用了jsr303的验证功能,同时,在项目中因对相关的配置出现了些问题,现对其进行总结:

下载依赖包:

JSR 303 – Bean Validation 规范下载地址: http://jcp.org/en/jsr/detail?id=303

Hibernate Validator下载地址:http://www.hibernate.org/subprojects/validator.html

这里我使用的是hibernate-validator4.3.1,通过下载,在hibernate-validator中能找到相关的依赖jar

准备工作做好之后,废话就不多说了,直接进入主题。

这里主要是针对springmvc的xml文件进行相应的配置:

 

<!-- 国际化消息配置 -->
	<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
		<property name="defaultEncoding" value="UTF-8"></property>
		<property name="basenames">
			<list>
				<value>classpath:com/message</value>
			</list>
		</property>
	</bean>
	
    <!-- spring提供的bean validator接口配置  -->
	<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
		<property name="providerClass"  value="org.hibernate.validator.HibernateValidator"/>
        <property name="validationMessageSource" ref="messageSource"/>
	</bean>
   <!--注解驱动,此句必须加上validator属性指向beanvalidator的bean中的id-->
    <mvc:annotation-driven validator="validator"> 

  在我的项目当中,由于之前有人配了RequestMappingHandlerMapping,RequestMappingHandlerAdapter二个对象的BEAN,导倒了最终验证不成功,主要是跟<mvc:annotation-driven validator="validator">发生冲突,在控制层会扫描二次。这里不需要配RequestMappingHandlerMapping,RequestMappingHandlerAdapter相应的bean。通过简单的配置,基本上能够完成了验证功能。

 

在javabean中验证代码样式:

 

@NotEmpty(message="{menu.menuName}")
	@Size(max=30,message="{menu.menuName.length}")
	private String menuName = "";
 

    在springMVC中控制层代码样式:

 

 public String addMenuExec(HttpServletRequest request,HttpServletResponse response,
@Valid SysMenu sysMenu,BindingResult bindingResult)

  以上代码:需要对验证的javaBean前加入@Valid注解,有些帖子上,说还需要加入@modeAttriture注解,但通过验证,不需要加也可以。另外,bindingResult主要是将验证的结果放入该类当中。

 

通过以上几个步聚,就能完成效验功能,非常easy。呵。

 

 

jsr303详细介绍, 转载:http://www.oschina.net/question/129540_20649

 

 

分享到:
评论
1 楼 Laster2800 2016-12-15  
如果我12个钟之前就看到这个帖子,就不会这么惨了

同样是RequestMappingHandlerMapping,花了我整整半天时间

相关推荐

    springmvc_jsr303

    项目中所需的jar包在压缩包中已提供,项目中用到了JSR303和hibernate-validator的技术,大量采用了注解@NotNull,@Email,@Length,@Max,@Pattern,@Size等,此外还采用了自定义注解,验证信息全部配置在属性文件中.

    springmvc&JSR303;的jar包

    Spring MVC是Spring框架的一部分,用于构建MVC(Model-View-Controller)架构的Web应用,而JSR303(Java Bean Validation)则提供了一种标准的数据验证机制。 Spring MVC详解: Spring MVC 是一个轻量级的MVC框架,...

    SpringMVC JSR303数据校验DEMO(附:JSR303的JAR包)

    在SpringMVC中集成JSR303,可以实现对用户输入数据的高效验证。JSR303提供了预定义的验证注解,如@NotNull、@Size、@Pattern等,开发者可以直接在模型类的属性上添加这些注解,以声明验证规则。当用户提交数据时,...

    SpringMVC杂记(五) JSR303数据验证

    在本篇《SpringMVC杂记(五) JSR303数据验证》中,我们将深入探讨SpringMVC框架如何集成并使用JSR303(JavaBeans Validation)来进行数据验证,这是一种强大的验证机制,可以确保应用程序接收到的数据是合法且符合...

    SpringMVC使用JSR-303进行验证Bean.docx

    SpringMVC框架结合JSR-303(也称为JSR-349,Java Bean Validation)规范提供了一种优雅的方式来处理数据验证。本篇文章将详细介绍如何在SpringMVC中使用JSR-303进行Bean验证。 首先,我们需要引入JSR-303的实现库。...

    【源码】SpringMVC与SiteMesh2.4无缝整合并借助JSR303规范实现表单验证

    这是我的这篇博文的源码:SpringMVC与SiteMesh2.4无缝整合并借助JSR303规范实现表单验证,博文地址:http://blog.csdn.net/jadyer/article/details/7574668

    springmvc表单验证JSR-303验证框架jar包

    hibernate-validator-5.2.4.Final.jar hibernate-validator-annotation-processor-5.2.4.Final.jar hibernate-validator-cdi-5.2.4.Final.jar validation-api-1.1.0.Final.jar jboss-logging-3.2.1.Final.jar ...

    SpringMVC 使用JSR-303进行校验 @Valid示例

    JSR-303是Java Specification Requests之一,是一种用于Java的Bean验证规范。它定义了一套元数据模型和API,用于在Java Bean上进行声明式验证。 使用SpringMVC结合JSR-303进行数据校验的流程一般包括以下几个步骤:...

    JSR303jar包 使用的是Hibernate

    2. 配置:在SpringMVC配置中启用JSR303验证,并指定使用的Validator实现,通常是Hibernate Validator。 3. 注解模型:在需要验证的实体类或控制器方法的参数上添加相应的JSR303注解。 4. 处理异常:当验证失败时,...

    springmvc使用JSR-303进行数据校验实例

    SpringMVC结合JSR-303可以实现对数据的有效验证,确保接收到的数据是符合业务要求的。接下来,我们会详细讲解如何在SpringMVC项目中集成JSR-303进行数据校验。 首先,我们来看如何集成JSR-303到SpringMVC项目中。...

    Spring验证器+JSR303.rar

    使用SpringMVC的验证器完成货物入库输入校验。验证入库时间,以及商品价格是否合理等。主要用到的JSR303中:@Past:验证Date和Calender对象是否在当前时间之前。@Pattern:验证String对象是否符合正则表达式的规则。

    SpringMVC入门很简单之数据验证

    SpringMVC提供了多种方式进行数据验证,包括使用JSR-303/JSR-349(Bean Validation)标准以及自定义验证注解。 1. **使用JSR-303/JSR-349 (Bean Validation)** Bean Validation 提供了一种统一的验证API,允许在...

    springmvc数据验证

    Spring MVC 提供了两种主要的数据验证方式:一种是基于JSR 303/349的Bean Validation,另一种是基于Validator接口的自定义验证。 1. **Bean Validation**:这是一个标准的Java Bean数据验证框架,它定义了一组注解...

    springMVC Validator表单验证

    这些注解可以与JSR-303/JSR-349标准的注解(如`@NotNull`, `@Size`, `@Pattern`等)一起使用,或者自定义更复杂的验证逻辑。 4. **控制器方法**:在控制器类中,你会看到一个处理注册表单提交的HTTP请求的方法。这...

    validation-api-1.1.0.cr1.jar

    《JSR303在SpringMVC中的数据验证实践》 JSR303,全称为Java Specification Request 303,是Java EE 6中引入的一个标准,用于提供bean的验证框架。这个规范定义了如何在应用程序中进行数据验证,并且通过Validation...

    服务器验证1

    服务器验证机制详解 服务器验证是指在服务器端...Spring自带的服务器校验和JSR303服务器校验都可以实现服务器验证,然而,JSR303服务器校验提供了更多的验证规则和更好的国际化支持,是一种更为推荐的服务器验证机制。

    SpringMVC+jsp之表单验证登录

    例如,我们可以使用@Valid注解在Controller方法的参数上,来启用JSR-303/JSR-349 Bean Validation标准,对传入的模型对象进行验证。验证规则可以在模型类的属性上定义,如@NotBlank、@Size等。如果验证失败,...

    springmvc处理器和配置器

    - Spring MVC支持自动将请求参数绑定到处理器方法的参数上,以及使用JSR-303/JSR-349进行数据验证。 在SpringMVC_01这个压缩包中,很可能包含了关于这些概念的示例代码和详细教程,通过学习和实践这些资源,你可以...

    springMVC学习

    SpringMVC 提供了使用 JSR303 进行验证的机制,可以帮助开发者快速构建验证机制。 SpringMVC 是一个功能强大且灵活的 web 框架,可以帮助开发者快速构建稳健的 web 应用程序。本指南提供了 SpringMVC 的核心思想、...

    springmvc注解式控制器的数据验证、类型转换及格式化 SpringMVC数据验证

    Spring MVC通过集成JSR 303/349(Java Bean Validation)规范,使得我们可以在模型属性上定义验证规则,如`@NotNull`、`@Size`、`@Pattern`等。当控制器接收到请求后,Spring会自动进行数据验证,并在验证失败时抛出...

Global site tag (gtag.js) - Google Analytics