SpringMVC中的参数绑定

162 阅读2分钟

一、默认类型

  • HttpServletRequest 对象
  • HttpServletResponse 对象
  • HttpSession 对象
  • Model/ModelMap 对象【 spring mvc 框架】

二、一般类型不需要特殊处理*

  • 基本类型
  • 基本类型的包装类型
  • String类型

三、 JavaBean类型

  • 若JavaBean参数的属性中只包含基本数据类型和String类型属性,以属性名作为请求参数名,则SpringMVC会自动将其封装成JavaBean对象

JavaBean复合类型(Java Bean的一个属性是另外一个JavaBean) (post)

若JavaBean参数的属性中包含其它JavaBean对象,则以外层类属性名.内层类属性名作为请求参数

<form action="account/updateAccount" method="post">

 <label>名称</label><input type="text" name="username"><br/>

 <label>年龄</label><input type="text" name="age"><br/>

  <label>用户名</label><input type="text" name="user.uname"><br/>

 <label>用户余额</label><input type="text" name="user.umoney"><br/>

 <input type="submit" value="保存">

</form>

四、数组参数类型

  • 场景: 删除一些列产品, 或者接收一些列人名
  • 普通类型数组是指Integer、Stirng、Long等基本数据类型的包装类列表,集合Map( 简单,复杂)
  • 格式:public String test(Integer[] ) 或者public String test2(String[] )

图片1.png

五、Set/List/map类型参数类型 (post)

  • 后端的POJO: 需要元素的JavaBean, 需要将JavaBean 嵌入复合对象,后端的Controller,  复合对象接收。Set 比较特殊

图片2.png

  • 前端的包装

图片3.png

六、JSON 参数绑定*

  • 背景* 由于前后端分离以及前端的多样性,通常我们使用json数据格式进行参数/数据传递,需要@RequestBody注解解析,将json格式的数据转为java对象,常用其来处理application/json类,接收的是一个json格式的字符串

JSON字符串,JSON对象,目标Java 对象

  • 步骤

查看JSON字符串在JSON校验器上检验

需要有Json转换jar包

对照JSON的形式编写对应的java类(一般{} 对应的java类,[]对应的数组, :对应java类中的属性)或者用基本类

  • 工具

gson FastJson Jackson

七、 XML 参数绑定

八、自定义类型转换器

  • 背景:请求发送的参数一般是String类型,但是pojo的属性数据类型不一定都是String类型,需要将String类型转换为pojo属性的数据类型。
  • 相关类:Converter和Fromatter, 定义和注册

九、中文乱码

  • Filter里面配置UTF-8, 或者尽量不要用中文