`

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
分享到:
评论

相关推荐

    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必备架包_hui

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

    燕青老师springmvc的课堂教案

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

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

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

    SpringMVC完整使用教程

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

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

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

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

    springMvc01.rar_框架

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

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

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

    尚硅谷SpringMVC源码及PPT

    - 数据绑定和验证 - 文件上传与下载 - RESTful API设计 - 异常处理 - 整合其他技术,如MyBatis、WebSocket等 通过尚硅谷的SpringMVC源码分析,开发者可以更深入地了解SpringMVC的内部机制,如DispatcherServlet、...

    springmvc入门helloworld

    - 创建一个applicationContext.xml文件,定义Spring MVC的相关组件,如Bean的定义、视图解析器、数据绑定等。 5. **编写HelloWorld Controller** - 创建一个简单的Controller类,例如`HelloWorldController`,用`...

    springmvc+fastjson demo

    它提供了丰富的注解、模型绑定、数据验证、处理器映射等功能,极大地简化了开发流程。Fastjson 则是阿里巴巴开源的一个高性能的 JSON 解析和生成库,它可以快速地将 Java 对象转换为 JSON 字符串,也可以将 JSON ...

    Spring、SpringMVC及Mybaits讲义教程

    - **优点**:模块化结构清晰,支持多种视图技术,如JSP、FreeMarker,提供了强大的数据绑定和验证功能,以及对RESTful风格的支持。 3. **MyBatis**: - **简介**:MyBatis是一个持久层框架,它允许开发者编写SQL...

    使用springmvc做的增删改查

    一、Spring MVC 概述 Spring MVC是Spring框架的一部分,它设计用于处理HTTP请求,提供了一个优雅的方式来组织和控制Web应用的流程。核心组件包括DispatcherServlet、Controllers、Models、Views等。...

    springmvc4DEMO

    5. **模型数据绑定** @ModelAttribute注解用于将请求参数与方法参数进行绑定,使得数据可以直接传递到控制器方法中。同时,ModelAndView对象用于存储模型数据,并指定视图。 6. **拦截器(Interceptor)** Spring...

    看透SpringMVC:源代码分析与实践

    Spring MVC提供强大的数据绑定功能,可以自动将请求参数绑定到Controller方法的参数上,同时也支持自定义类型转换器。 10. **拦截器(Interceptor)**: 拦截器是Spring MVC中的一种高级特性,允许在请求处理前后...

Global site tag (gtag.js) - Google Analytics