项目环境配置没有问题,JAR该导的都导了。
直接上源码 :
UsersController:
@RequestMapping(value = "/add.html", method = RequestMethod.POST) public String doAdd(@Valid @ModelAttribute("user") TUsers user, BindingResult bindingResult) throws Exception { System.out.println("进入方法 "); System.out.println(bindingResult.getErrorCount() + " 这个 是错误 统计 "); if (bindingResult.hasErrors()) { System.out.println("有错误 "); String code = bindingResult.getFieldError().getCode();// 验证出错的那个类型名称 // 比如NotEmpty System.out.println(bindingResult.getFieldError().getDefaultMessage() + " 出错的信息 ");// 出错的信息 System.out.println(bindingResult.getFieldErrors().size() + " size"); return "back/user/user_add"; } System.out.println("校验通过 "); usersService.doCreate(user); return "redirect:/user/findAll.html"; }
TUsers.java
private Integer id; @Length(min = 2) private String username; private String name; @NotNull private String password; private String role; private Date logintime;
配置文件:
spring3-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd " default-autowire="byName"> <!-- 默认采用byName方式进行Bean的注入 --> <!-- 配置静态资源,这里表示为:把/images/的所有文件路径映射为/images/,因为在web.xml中已经把拦截路径配置为/,所以静态资源也被拦截。 --> <mvc:resources mapping="/images/**" location="/images/" /> <mvc:resources mapping="/js/**" location="/js/" /> <mvc:resources mapping="/css/**" location="/css/" /> <!-- Ajax乱码解决开始、需要把bean部分加入到<context:component-scan base-package="" />前面, 这样就可以在jquery中直接调用而不出现乱码了。 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="stringHttpMessageConverter" /> </list> </property> </bean> <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> <!--Ajax乱码解决结束、--> <!-- 扫描所有的controller (这里只要扫描controller就可以了,不要扫描真实类和业务类)--> <context:component-scan base-package="org.yzsoft.springmvc.web" /> <!-- 处理在类级别上的@RequestMapping注解--> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> <!-- 处理方法级别上的@RequestMapping注解--> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <!-- 以下 validator ConversionService 在使用 mvc:annotation-driven 会 自动注册--> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> <!-- 如果不加默认到 使用classpath下的 ValidationMessages.properties --> </bean> <!-- 默认的注解映射的支持 --> <!-- <mvc:annotation-driven/> --> <mvc:annotation-driven validator="globalValidator"/> <!-- spring供给的bean validator接口设备 --> <bean id="globalValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> <property name="validationMessageSource" ref="messageSource"/> </bean> <!-- 国际化消息设备 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="defaultEncoding" value="UTF-8"></property> <property name="basenames"> <list> <value>classpath:ValidationMessages.properties</value> </list> </property> </bean> <!-- 配置一个基于注解的定制的WebBindingInitializer,解决日期转换问题,方法级别的处理器映射, 有人说该bean要放在context:component-scan前面,要不然不起作用,但我试的放后面也可以啊。 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="webBindingInitializer"> <bean class="org.yzsoft.springmvc.util.MyWebBinding" /> </property> </bean> <!-- InternalResourceViewResolver默认的就是JstlView所以这里就不用配置viewClass了,prefix为前缀, suffix为后缀,例如控制器返回的视图名为success,到这里时将被映射成/success.jsp --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 上传拦截,如最大上传值及最小上传值 ,如果用到文件上传这个一定要加,不然会报400异常--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 上传最大尺寸 (单位 :字节) --> <property name="maxUploadSize" value="1000000000" /> </bean> <!-- 启用基于注解的处理器映射,添加拦截器,类级别的处理器映射 --> <!-- <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <bean class="org.yzsoft.springmvcdemo.util.MyHandlerInterceptor" /> </list> </property> </bean> --> </beans>
如果数据格式校验通过没有问题,如果不符合格式,则会直接抛出异常:
希望有经验的各位大哥给个建议。谢谢~~
相关推荐
当用户提交数据时,SpringMVC会自动调用JSR303验证器,如果输入不符合预设规则,系统将抛出异常并返回错误信息。 JSR303的JAR包通常包含了核心验证API(javax.validation.*)和实现,如Hibernate Validator,它是...
使用SpringMVC结合JSR-303进行数据校验的流程一般包括以下几个步骤: 1. 准备校验时使用的JAR包:在项目中添加validation-api和具体的实现库(如hibernate-validator),用于执行校验规则。 2. 编写需要校验的Java...
SpringMVC框架结合JSR-303(也称为JSR-349,Java Bean Validation)规范提供了一种优雅的方式来处理数据验证。本篇文章将详细介绍如何在SpringMVC中使用JSR-303进行Bean验证。 首先,我们需要引入JSR-303的实现库。...
接下来,我们会详细讲解如何在SpringMVC项目中集成JSR-303进行数据校验。 首先,我们来看如何集成JSR-303到SpringMVC项目中。一般情况下,集成过程涉及以下步骤: 1. 添加依赖:需要添加JSR-303规范的API包以及...
在本篇《SpringMVC杂记(五) JSR303数据验证》中,我们将深入探讨SpringMVC框架如何集成并使用JSR303(JavaBeans Validation)来进行数据验证,这是一种强大的验证机制,可以确保应用程序接收到的数据是合法且符合...
SpringMVC 数据的格式化、JSR 303数据校验和国际化 实例.zip 对应博客:http://blog.csdn.net/peng_hong_fu/article/details/53559773
JSR303校验一些常用的规则
总的来说,JSR303和Hibernate Validator为Java开发带来了标准化的数据验证解决方案,它们与SpringMVC的整合使得Web应用的数据校验变得更加简洁、高效。在实际开发中,正确理解和使用这些工具,能够有效地提升应用的...
JSR303用到的jar包,本人使用的,现分享给大家,希望能给大家带来帮助 classmate-0.8.0.jar hibernate-validator-5.0.0.CR2.jar hibernate-validator-annotation-processor-5.0.0.CR2.jar jboss-logging-3.1.1...
Spring MVC 3.2已经内建了对JSR 303的支持,因此我们可以方便地使用预定义的校验注解,如`@NotNull`, `@Min`, `@Max`, `@Size`等。 以下是一些常见的校验注解及其用法: 1. `@NotNull`: 检查字段是否为非空。 2. `...
Spring MVC 数据效验 jar包 :classmate-1.1.0.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,jboss-logging-3.2.1....
Spring MVC 提供了两种主要的数据验证方式:一种是基于JSR 303/349的Bean Validation,另一种是基于Validator接口的自定义验证。 1. **Bean Validation**:这是一个标准的Java Bean数据验证框架,它定义了一组注解...
SpringMVC JSR 数据校验完整jar包下载,一共六个jar包,classmate-1.0.0.jar,hibernate-validator-5.0.0.final.jar,hibernate-validator-annotation-processor-5.0.1.final.jar,hibernate-validator-cdi-5.0.0....
在本资料包 "大三(二)springmvc数据校验.zip" 中,我们主要探讨的是 Spring MVC 中的数据校验机制。 在 Spring MVC 中,数据校验是非常重要的一环,它确保了从客户端提交到服务器的数据是准确无误的。数据校验...
**JSR 303数据校验示例:** ```java @Entity @Table(name = "user_info", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_name"})}) public class UserInfo { @Id @GeneratedValue(generator = ...
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/JSR-349(Bean Validation)标准以及自定义验证注解。 1. **使用JSR-303/JSR-349 (Bean Validation)** Bean Validation 提供了一种统一的验证API,允许在...
SpringMVC支持JSR-303/JSR-349标准的数据校验框架,如Hibernate Validator。通过在模型类的字段上添加验证注解(如`@NotNull`, `@Size`, `@Min`, `@Max`等),可以对用户提交的数据进行校验。在控制器中,使用`@...
使用SpringMVC的验证器完成货物入库输入校验。验证入库时间,以及商品价格是否合理等。主要用到的JSR303中:@Past:验证Date和Calender对象是否在当前时间之前。@Pattern:验证String对象是否符合正则表达式的规则。
在Java Web开发中,Spring MVC和Hibernate Validator是两个非常重要的组件。Spring MVC是Spring框架的一部分,主要...在实际项目中,合理使用这些工具可以大大减少因数据异常导致的问题,提高系统的稳定性和可维护性。