`

SpringMVC(十)_数据绑定流程(概述)

阅读更多

       前言:本篇主要介绍SpringMVC的数据绑定流程,后续会详细介绍数据绑定流程当中的关键步骤,包括数据转换、数据格式化以及数据校验

本篇文章重点关注以下问题:

  • 概述SpringMVC的数据绑定流程
  • 类型转换、验证及格式化流程图

1. 数据绑定的流程


        由上述流程可见,Spring MVC 通过反射机制对目标处理方法进行解析,将请求消息绑定到处理方法的入参中,数据绑定的核心部件是DataBinder

 步骤如下
  1. SpringMVC主框架将ServletRequest对象及目标方法的入参实例传递给 WebDataBinderFactory 实例,以创建 DataBinder 实例对象;
  2. DataBinder 调用装配在 Spring MVC 上下文中的ConversionService 组件进行数据类型转换、数据格式化工作,将 Servlet 中的请求信息填充到入参对象中;
  3. 调用 Validator 组件对已经绑定了请求消息的入参对象进行数据合法性校验,并最终生成数据绑定结果BindingData对象;
  4. SpringMVC 抽取BindingResult 中的入参对象和校验错误对象,将它们赋给处理方法的响应入参。

2. 类型转换、验证及格式化流程图


 流程如下

  1. 类型转换:内部的ConversionService会根据S源类型/T目标类型自动选择相应的Converter SPI进行类型转换,而且是强类型的,能在任意类型数据之间进行转换;
  2. 数据验证:支持JSR-303验证框架,如将@Valid 放在需要验证的目标类型上即可;
  3. 格式化显示:其实就是任意目标类型---->String 的转换,完全可以使用Converter SPI完成。
 在Spring Web MVC环境中,数据类型转换、验证及格式化通常是这样使用的:
  1. 类型转换:首先表单数据(全部是字符串)通过WebDataBinder 进行绑定到命令对象,内部通过Converter SPI实现;
  2. 数据验证:使用JSR-303验证框架进行验证;
  3. 格式化显示:在表单页面可以显示通过Converter SPI格式化的数据和错误信息:

 注意:Formatter SPI内部实现实际委托给Converter SPI进行转换。

  • 大小: 59.2 KB
  • 大小: 10.3 KB
分享到:
评论

相关推荐

    Java实训教程 Java软件开发实战 Java开发框架介绍 SpringMVC_8_标签库 共39页.pptx

    **SpringMVC_2_HelloWorld**(共19页):这部分内容通过简单的HelloWorld示例介绍了SpringMVC的基本工作流程,包括控制器(Controller)的创建、视图解析器(ViewResolver)的配置、请求映射(@RequestMapping)等...

    SpringMVC数据绑定入门.rar

    在这个“SpringMVC数据绑定入门”压缩包中,你将找到一系列资源来帮助你理解并掌握SpringMVC的数据绑定机制,这对于任何Java开发者来说都是一个重要的技能。 1. **SpringMVC概述**: SpringMVC作为Spring框架的一...

    Java_SpringMvc-maven.rar_springmvc_springmvc框架

    Spring MVC提供了许多功能,包括URL映射、数据绑定、验证、本地化、视图解析等。 2. **MVC模式**: - **模型(Model)**:负责业务逻辑和数据管理,通常由Java对象(POJOs)构成。 - **视图(View)**:负责数据...

    springmvc_02 高级参数绑定 异常处理 文件上传

    ##### 1.1 高级参数绑定概述 高级参数绑定是Spring MVC框架中的一个重要特性,它允许开发者以更简洁的方式处理HTTP请求中的参数。在实际应用中,这种绑定方式极大地简化了开发过程,提高了效率。 ##### 1.2 数组...

    springmvc必备架包_hui

    9. **数据绑定与验证**:Spring MVC 提供了数据绑定功能,可以自动将请求参数映射到控制器方法的参数上。同时,通过 Hibernate Validator 或 JSR-303/JSR-349 规范,可以实现数据验证。 10. **异常处理**:Spring ...

    尚硅谷SpringMVC部分全套教学文档笔记

    3. **数据绑定流程**: - SpringMVC支持自动将请求参数绑定到Controller的方法参数,这涉及到模型绑定和类型转换。 - 数据绑定可以是简单的类型如字符串,也可以是复杂类型如自定义对象,Spring会自动进行转换。 ...

    燕青老师springmvc的课堂教案

    1. **SpringMVC概述**:SpringMVC是一个轻量级的、基于请求驱动的Web MVC框架,它提供了处理HTTP请求、数据绑定、异常处理、视图渲染等能力,使得开发者可以更加专注于业务逻辑,而不是底层的细节。 2. **...

    SpringMVC完整使用教程

    它提供了一种模型-视图-控制器(MVC)架构,使得开发者可以更方便地处理 HTTP 请求、响应以及数据绑定。本教程将深入探讨 SpringMVC 的核心功能和使用方法。 ### 第 1 章 SpringMVC 概述 SpringMVC 旨在简化 Web ...

    springMVC笔记详细流程图思维导图

    1. **流程概述** - **发起请求**:客户端(通常是浏览器)发送一个HTTP请求到服务器。 - **DispatcherServlet**:SpringMVC的入口点,负责调度请求到合适的处理器。 - **HandlerMapping**:根据URL映射找到合适的...

    SpringMVC4教程-超权威--超详细

    - **数据绑定**:SpringMVC支持自动的数据绑定,可以将请求中的数据自动绑定到Java对象中。 - **数据格式化**:通过实现Formatter接口或使用@DateTimeFormat注解来指定日期时间等复杂类型的格式化规则。 - **数据...

    SpringMVC学习笔记.zip

    五、SpringMVC数据绑定与验证 1. 数据绑定:SpringMVC可以自动将请求参数绑定到Controller方法的参数上,支持基本类型和自定义对象的绑定。 2. 数据验证:通过JSR-303/JSR-349提供的Bean Validation实现,可以在...

    01-springMVC概述和基础配置

    - **数据绑定**:SpringMVC 自动将请求参数绑定到处理器方法的参数,反之亦然,这称为数据绑定。 - **异常处理**:可以定义全局的异常处理器,处理所有 Controller 中抛出的异常。 - **视图技术**:SpringMVC ...

    SpringMVC学习文档

    在实践中,SpringMVC提供了许多便利的功能,如国际化支持、数据绑定、异常处理、模型验证等。开发者可以利用注解简化配置,如@Controller、@RequestMapping等。此外,SpringMVC与Spring其他模块(如Spring AOP、...

    springMVC使用文档

    - **强大的功能**:SpringMVC 提供了丰富的特性,如数据绑定、国际化支持、异常处理等。 - **RESTful 支持**:SpringMVC 对 RESTful 风格的 URL 请求提供了良好的支持,这使得构建 RESTful Web 服务变得非常简单。 ...

    springmvc王磊文档2

    - 对于特殊类型的数据绑定需求,如日期类型,可以自定义实现`Converter`接口来实现特定类型的转换。例如,创建一个`Converter, Date>`实现类,将字符串类型的日期转换为Java中的`Date`对象。 - 将自定义的转换器...

    springmvc开发文档

    #### 一、SpringMVC概述 - **SpringMVC** 是一种基于 Java 的轻量级 Web 框架,作为 Spring Framework 的一部分,它提供了一种清晰的架构来构建 Web 应用程序。 - **特点**:易于测试、与 Spring 容器无缝集成、提供...

    SpringMVC 实例

    一、SpringMVC 概述 SpringMVC 提供了模型与视图的分离,控制器负责处理用户请求,将数据传递给模型,最后由视图进行渲染展示。它通过DispatcherServlet作为前端控制器,接收HTTP请求并分发到相应的处理器(Handler...

    springMvc01.rar_框架

    2. 数据绑定:自动将请求参数绑定到控制器方法的参数,支持类型转换和验证。 3. 国际化:支持多语言环境,通过LocaleResolver和MessageSource实现。 4. 异常处理:可以自定义异常处理器来统一处理应用程序中的异常。...

    SpringMVC部分【第2天相关资料及源代码】.

    SpringMVC作为Spring框架的一部分,提供了强大的Web开发能力,包括注解驱动的开发、数据绑定、类型转换、异常处理等。它简化了Web应用的开发,提高了代码的可测试性,并通过依赖注入(DI)和面向接口编程实现了松...

Global site tag (gtag.js) - Google Analytics