SpringMVC-请求参数的绑定
绑定的机制
- 表单提交的数据都是k=v格式的 username=haha&password=123
 - SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的
 - 要求:提交表单的name和参数的名称是相同的
 
支持的数据类型
- SpringMVC 绑定请求参数是自动实现的,但是要想使用,必须遵循使用要求。指表单中的name属性
 
1. 基本数据类型和String类型
- 要求我们的参数名称必须和控制器中方法的形参名称保持一致。(严格区分大小写)
 
2. 实体类型(POJO类或包装POJO类)
- 要求表单中参数名称和 POJO 类的属性名称保持一致。并且控制器方法的参数类型是 POJO 类型。
 - 如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性 例如:address.name
 
3. 集杂数据类型
- 数组
 
- 表单中name属性相同,value不同;形参是数组,且名称相同
 
- 集合
 
- 要求集合类型的请求参数必须在 POJO 中。在表单中请求参数名称要和 POJO 中集合属性名称相同
 - 给 List 集合中的元素赋值,使用下标
 - 给 Map 集合中的元素赋值,使用键值对
 
4. 请求参数中文乱码的解决
- 在web.xml中配置Spring提供的过滤器类
 
<!-- 配置过滤器,解决中文乱码的问题 -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <!-- 指定字符集 -->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <!-- 过滤所有请求 -->
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
- 在 springmvc 的配置文件中可以配置,静态资源不过滤
 
<!-- location 表示路径,mapping 表示文件,**表示该目录下的文件以及子目录的文件 -->
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/scripts/" mapping="/javascript/**"/>
- get 请求方式:tomacat 对 GET 和 POST 请求处理方式是不同的,GET 请求的编码问题,要改 tomcat 的 server.xml配置文件
 
5. 自定义类型转换器
- 表单提交的任何数据类型全部都是字符串类型,但是后台定义Integer类型,数据也可以封装上,说明Spring框架内部会默认进行数据类型转换。
 - 如果想自定义数据类型转换,可以实现Converter的接口
 - 注册自定义类型转换器,在springmvc.xml配置文件中编写配置
 - 还是可以使用Formatter进行类型转换
 
6. 使用 ServletAPI 对象作为方法参数
- HttpServletRequest
 - HttpServletResponse
 - HttpSession
 - 等
 
SpringMVC-请求参数的绑定的更多相关文章
- springmvc请求参数的绑定和获取
		
请求参数的绑定和获取: 获取页面请求的参数,是javaweb必不可少的一个环节,在struts中,是通过再Action中定义属性,或者Model的方式进行数据绑定和获取.需要提供setter或gett ...
 - 16 SpringMVC 的请求参数的绑定与常用注解
		
1.SpringMVC 绑定请求参数 (1)支持的数据类型 基本类型参数: 包括基本类型和 String 类型POJO 类型参数: 包括实体类,以及关联的实体类数组和集合类型参数: 包括 List 结 ...
 - SpringMVC请求参数接收总结
		
前提 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结.SpringMVC中处理控制器参数的接口是HandlerMethodArgumentRes ...
 - SpringMVC请求参数接收总结(一)
		
前提 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结.SpringMVC中处理控制器参数的接口是HandlerMethodArgumentRes ...
 - SpringMVC请求参数总结
		
前提 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结.SpringMVC中处理控制器参数的接口是HandlerMethodArgumentRes ...
 - 2.5万字长文简单总结SpringMVC请求参数接收
		
这是公众号<Throwable文摘>发布的第22篇原创文章,暂时收录于专辑<架构与实战>.暂定下一篇发布的长文是<图文分析JUC同步器框架>,下一篇发布的短文是&l ...
 - springmvc请求参数异常统一处理
		
1.ExceptionHandlerController package com.oy.controller; import java.text.MessageFormat; import org.s ...
 - springmvc请求参数异常统一处理,结合钉钉报告信息定位bug位置
		
参考之前一篇博客:springmvc请求参数异常统一处理 1.ExceptionHandlerController package com.oy.controller; import java.tex ...
 - SpringMVC 请求参数绑定
		
什么是请求参数绑定 请求参数格式 默认是key/value格式,比如:http:xxxx?id=1&type=2 请求参数值的数据类型 都是字符串类型的各种值 请求参数值要绑定的目标类型 Co ...
 - springmvc请求参数获取(自动绑定)的几种方法
		
1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @pa ...
 
随机推荐
- 数组,for语句(补10.11)
			
1.数组定义:一系列通数据类型的数据集合. 2.数组赋值的两种方法: 先定义后赋值:(赋值从0开始) var aa = new Arrey(); aa[0] = 1; aa[1] = 2; 定义并赋值 ...
 - 截图上传功能  imageAreaselect
			
前台: <script src="~/Scripts/jquery-2.1.4.min.js"></script> <link href=" ...
 - 多行文字超出字数部分省略(主要解决不兼容;display: -webkit-box;的浏览器)
			
注明:内容来处https://www.cnblogs.com/ss977/p/5846176.html 1.现webkit内核的浏览器支持display: -webkit-box;属性, 所以网页中显 ...
 - 3dmax沿立方体边扩展出面
			
这个做法有问题,接缝问题处理起来很麻烦,立方体与平面的拼接基本就做不到 做建筑时,一般先做墙,然后通过墙扩展出地表,这么做可以保证墙和地表是一体的,避免产生缝隙 1 新建2个Cube 2 转换为可编辑 ...
 - 洛谷P4768 [NOI2018]归程(克鲁斯卡尔重构树+最短路)
			
传送门 前置技能,克鲁斯卡尔重构树 我们按道路的高度建一个最大生成树,然后建好克鲁斯卡尔重构树 那么我们需要知道一颗子树内到1点距离最近是多少(除此之外到子树内任何一个点都不需要代价) 可以一开始直接 ...
 - SpringBoot2.0 基础案例(12):基于转账案例,演示事务管理操作
			
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.事务管理简介 1.事务基本概念 一组业务操作ABCD,要么全部 ...
 - 笔记-JavaWeb学习之旅14
			
JSTL:JavaServer Pages Tag Library JSP标准标签库 if标签 <%@ page import="java.util.ArrayList" % ...
 - spring 公用异常处理
			
1. 采用spring boot注解方式,如果采用swagger的话会导致swagger不可用 1.1 spring 配置如下 #出现错误时, 直接抛出异常 spring.mvc.throw-exc ...
 - 使用echo命令向文件写入内容
			
0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容 ...
 - django-跨域访问
			
pip install django-cors-headers #安装cors INSTALLED_APPS = [ ... 'corsheaders', ... ] MIDDLEWARE_CLASS ...