使用Spirng 3 MVC很方便;使用它的validation同样。。
使用方法
1. 依赖两个包
<!-- JSR 303 with Hibernate Validator -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.1.0.Final</version>
</dependency>
2. model里加验证具体方式如下:
参考如下http://stackoverflow.com/questions/9993447/two-ways-to-use-spring-3-validation
使用发现错误:
严重: Servlet.service() for servlet dispatcher threw exception
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 5 errors
Field error in object 'organization' on field 'name': rejected value []; codes [Max.organization.name,Max.name,Max.java.lang.String,Max]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [organization.name,name]; arguments []; default message [name],50]; default message [must be less than or equal to 50]
Field error in object 'organization' on field 'typeCode': rejected value [hospital]; codes [Max.organization.typeCode,Max.typeCode,Max.java.lang.String,Max]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [organization.typeCode,typeCode]; arguments []; default message [typeCode],50]; default message [must be less than or equal to 50]
Field error in object 'organization' on field 'telephone': rejected value []; codes [Max.organization.telephone,Max.telephone,Max.java.lang.String,Max]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [organization.telephone,telephone]; arguments []; default message [telephone],20]; default message [must be less than or equal to 20]
Field error in object 'organization' on field 'orgCode': rejected value []; codes [Max.organization.orgCode,Max.orgCode,Max.java.lang.String,Max]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [organization.orgCode,orgCode]; arguments []; default message [orgCode],50]; default message [must be less than or equal to 50]
Field error in object 'organization' on field 'feature': rejected value [综合]; codes [Max.organization.feature,Max.feature,Max.java.lang.String,Max]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [organization.feature,feature]; arguments []; default message [feature],500]; default message [must be less than or equal to 500]
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doBind(HandlerMethodInvoker.java:810)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:359)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.founder.ids.common.LoginFilter.doFilter(LoginFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
其原因是:
public String save(@Valid Organization organization, ModelMap model, BindingResult errorResult) {
if (errorResult.hasErrors()) {
return "organization.add";
}
}
上面方法中ModelMap model,参数应该放到BindingResult errorResult后面,就对了
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Spring MVC框架进行基于注解的验证,特别是在Spring Bean Validation框架下。Spring MVC是Spring框架的一部分,它提供了一个强大的模型-视图-控制器(MVC)架构,用于构建Web应用...
3. ** JSR-303校验集成**:Spring 3集成了JSR-303 Bean Validation规范,可以方便地对表单输入进行验证。 4. ** 支持JPA 2.0和Hibernate 3.6**:Spring 3对Java Persistence API(JPA)进行了优化,支持JPA 2.0的新...
Spring3MVC是Spring框架的一个重要模块,用于构建基于Java的Web应用程序。它提供了一个模型-视图-控制器(MVC)架构,帮助开发者将业务逻辑、数据处理和用户界面分离,实现更清晰的代码组织和更高的可维护性。在这个...
此外,Spring3 MVC还提供了强大的数据绑定和验证功能,可以与jQuery表单插件如jQuery Validation Plugin配合使用,实现前后端一致的表单验证。在Controller中定义的命令对象会自动绑定到前端提交的表单数据,而验证...
3. **配置Spring MVC**:在`pom.xml`或`build.gradle`文件中添加Spring MVC和Hibernate Validation的依赖。同时,在web.xml中配置Spring MVC的DispatcherServlet和ContextLoaderListener。 4. **编写业务逻辑**:...
11. **验证**:Spring MVC 集成了 Bean Validation API,允许开发者对模型数据进行校验,通过 @Valid 注解和 ConstraintValidator 实现自定义验证规则。 12. **消息转换**:Spring MVC 提供了 HttpMessageConverter...
Spring3 MVC是一个强大的Java web开发框架,用于构建高效、可维护的Web应用程序。在这个实例中,我们将深入探讨Spring MVC的核心概念和技术,以及如何实现表单验证功能。 首先,Spring MVC是Spring框架的一部分,它...
Spring 3 MVC 是一个强大的Java Web开发框架,用于构建基于模型-视图-控制器(MVC)模式的应用程序。这个框架极大地简化了处理HTTP请求、数据绑定、验证、国际化以及与后端服务交互等任务。在Spring 3版本中,引入了...
当用户提交表单时,Spring MVC会自动执行这些验证,如果数据无效,会返回错误信息。 DWR的集成: DWR可以与Spring MVC协同工作,提供富客户端的交互体验。DWR的配置可以通过Spring的ContextLoaderListener来加载,...
Spring 3 MVC 是一款强大的Java Web开发框架,用于构建高效、可维护的Web应用程序。它基于Spring IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)的理念,提供了模型-...
3. **RESTful支持**:Spring MVC提供了对RESTful风格的HTTP方法(如GET、POST、PUT、DELETE等)的优秀支持,便于构建符合REST原则的Web服务。 4. **ModelAndView对象的改进**:此版本对`ModelAndView`对象进行了...
在压缩包文件"spring3_rest"中,可能包含了一个简单的Spring 3.0 MVC和REST的例子,你可以通过这个例子学习如何配置Spring MVC的DispatcherServlet,创建RESTful端点,处理请求和响应,以及如何使用JUnit进行测试。...
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。在Spring 3.0版本中,它引入了许多改进和新特性,提高了开发效率和灵活性。本篇文章将深入...
在这个"Spring MVC 3_demo"中,我们重点探讨的是使用注解来实现Spring MVC 3的应用。注解在Spring MVC中扮演着重要角色,它们简化了配置,提高了代码的可读性和可维护性。 1. **注解驱动的控制器**: 在Spring MVC...
3. **DispatcherServlet**:作为 Spring MVC 的核心组件,DispatcherServlet 负责接收请求,分发到相应的处理器。它通过配置的 HandlerMapping 映射 URL 到控制器,然后由 HandlerAdapter 调用控制器方法处理请求。 ...
Spring3 MVC 是一款基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的模型-视图-控制器(MVC)结构。这个"最新Spring3 MVC 示例 demo程序"旨在帮助开发者理解并掌握Spring 3的...
例如,当我们有一个`User`实体类,其中包含了一些需要验证的字段,我们可以在控制器的处理方法上使用`@Valid`注解,Spring MVC会自动调用Hibernate Validator进行验证,并将错误信息注入到BindingResult对象中。...
8. **验证**:Spring MVC与JSR 303/349的Bean Validation集成,支持在服务端进行表单验证。通过@Valid和@Validator注解可以实现数据验证。 9. **国际化与本地化**:Spring MVC提供了资源包(Resource Bundle)支持...
Spring3 MVC 是一款基于Java的轻量级Web应用程序框架,它是Spring框架的一部分,专注于处理Web应用的模型-视图-控制器(MVC)结构。在这个例子中,开发者选择了使用Map来替代真实的数据库,目的是简化示例,使得学习...
10. **Conversion and Validation**: Spring MVC提供了数据转换和验证功能,如使用`@RequestParam`、`@PathVariable`注解自动转换参数,以及使用`@Valid`和`BindingResult`进行表单验证。 11. **Tiles or Layouts**...