请求参数的绑定
目录
请求参数的绑定
支持的数据类型
基本类型参数:包括基本类型和 String 类型
POJO 类型参数:包括实体类,以及关联的实体类
数组和集合类型参数 :包括 List 结构和 Map 结构的集合(包括数组)
使用要求
SpringMVC 绑定请求参数是自动实现的,但是要想使用,必须遵循使用要求。
-
如果是基本类型或者 String 类型:要求我们的参数名称必须和控制器中方法的形参名称保持一致。(严格区分大小写)
-
如果是 POJO 类型,或者它的关联对象:要求表单中参数名称和 POJO 类的属性名称保持一致。并且控制器方法的参数类型是 POJO 类型。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>员工</title> </head> <body> <a href="employees">查询所有员工</a> <form action="param/saveAccount" method="post"> 姓名:<input type="text" name="username"> <br> 课程名称:<input type="text" name="course.name"> <br> <input type="submit" value="提交"> </form> </body> </html>
-
如果是集合类型 ,有两种方式:
-
第一种:
-
要求集合类型的请求参数必须在 POJO 中。在表单中请求参数名称要和 POJO 中集合属性名称相同。
-
给 List 集合中的元素赋值,使用下标。
-
给 Map 集合中的元素赋值,使用键值对。
1 2 3 4 5 6 7
<form action="param/saveAccount" method="post"> 姓名:<input type="text" name="username"> <br> 课程名称:<input type="text" name="course.name"> <br> List:<input type="text" name="list[0]"> <br> Map: <input type="text" name="map['one']"> <input type="submit" value="提交"> </form>
-
-
第二种:
- 接收的请求参数是 json 格式数据。需要借助一个注解实现。
中文乱码过滤器
配置中文乱码过滤器
在web.xml加入以下代码
|
|
自定义类型转换器
|
|
获取Servlet原生的API
SpringMVC 还支持使用原始 ServletAPI 对象作为控制器方法的参数。支持原始 ServletAPI 对象有:
- HttpServletRequest
- HttpServletResponse
- HttpSession
- java.security.Principal
- Locale
- InputStream
- OutputStream
- Reader
- Writer
我们可以把上述对象,直接写在控制的方法参数中使用。
|
|