一、默认类型
- 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[] )
五、Set/List/map类型参数类型 (post)
- 后端的POJO: 需要元素的JavaBean, 需要将JavaBean 嵌入复合对象,后端的Controller, 复合对象接收。Set 比较特殊
- 前端的包装
六、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, 或者尽量不要用中文