Spring MVC的数据绑定

本文详细介绍了Spring MVC的数据绑定过程,包括简单数据绑定如默认数据类型、POJO类型,处理中文乱码问题,以及复杂数据绑定如数组和集合。同时,还讲解了自定义数据绑定的两种方式:Converter接口和Formatter接口,以及如何解决日期等特殊类型的数据转换问题。
摘要由CSDN通过智能技术生成

概述

Spring MVC会根据客户端请求参数的不同,将请求参数以一定的方式转换并绑定到控制器类的方法参数中。Spring MVC会通过数据绑定组件(DataBinder) 将这种请求参数与后台方法参数建立连接的过程就叫Spring MVC的数据绑定。绑定过程如下:

在这里插入图片描述

由上图可知,Spring MVC进行数据绑定的核心是DataBinder,那么它具体如何工作的呢?

  1. Spring MVC将ServletRequest对象传递给DataBinder。
  2. 控制类的处理方法将形参对象传递给DataBinder
  3. DataBinder调用ConversionService组件进行数据类型的转换、格式化等工作。然后将ServletRequest对象中的请求参数填充到方法参数对象中。
  4. 对绑定好的数据会进行数据合法性检验
  5. 检验完成后生成数据绑定结果BindingResult对象。最后Spring MVC将BinderResult对象中的内容赋值给处理方法的相应参数(和第三步似乎冲突?暂且不管)

Spring MVC中的数据绑定共分为二种:

  1. 简单数据绑定
  2. 复杂数据绑定

简单数据绑定

绑定默认数据类型

当前端请求的参数比较简单时,可在后台方法的形参中直接使用Spring MVC提供的默认参数类型进行数据绑定。常用默认参数类型如下:

  1. HttpServletRequest:通过request对象获取请求信息
  2. HttpServletResponse:通过response对象处理响应信息
  3. HttpSession:session对象
  4. Model/ModelMap:作用是将model数据填充到request域

示例:

  1. 创建项目chapter13,并导入相关JAR包
  2. 配置web.xml和spring-config.xml文件
    在这里插入图片描述
    在这里插入图片描述
  3. 创建UserController控制类。
    在这里插入图片描述
  4. view
    在这里插入图片描述
    在这里插入图片描述

绑定简单数据类型

绑定简单数据类型,就是指绑定Java中几种基本数据类型的绑定。会自动将请求参数和同名的处理方法参数绑定。例如:更改上文中的UserController类如下:

在这里插入图片描述

若想要绑定不同名的参数,可以使用@RequestParam注解进行间接绑定,如下:
在这里插入图片描述
在这里插入图片描述

绑定POJO类型

当客户端请求传递多个不同类型的参数数据,采用上文中的简单数据类型绑定,需要在处理方法中编写不同类型的参数,难免有些繁琐。此时可采用POJO类型进行数据绑定
POJO类型数据绑定就是将所有请求参数封装在一个POJO类中,然后在方法使用该POJO类型接收参数。表单传递请求要以POST方式例如:

  1. 编写POJO类
package com.syl.po;

public class User {
   
	private Integer id;
	private String username;
	private String password;
	public Integer getId() {
   
		return id;
	}
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值