文章目录
- 2.1 获得请求参数
- 2.2 获得基本类型参数
- 2.3 获得POJO类型参数
- 2.4 获得数组类型参数
- 2.5 获得集合类型参数
- 2.6 请求数据乱码问题
- 2.7 参数绑定注解@RequestParam
- 2.8 获得restful风格的参数
- 2.9 自定义类型转换器
- 2.10 获得Servlet相关API
- 2.11 获得请求头
2.1 获得请求参数
2.2 获得基本类型参数
2.3 获得POJO类型参数
2.4 获得数组类型参数
2.5 获得集合类型参数
封装到POJO中
要单独写个JavaBean(VO),然后这个JavaBean里有list集合
直接写到方法的形参
@RequestBody List<User> userList
:直接把请求体封装到集合中,需要发送的是json格式的
首先把jquery拷贝到webapp/js下
访问页面,但发现控制台并没有打印
解决方法:(静态资源的访问)
为什么要这样做?原因在于前端控制器的配置
<url-pattern>/</url-pattern>
缺省的servlet,意味着客服端发送请求,会到服务器端找相应的servlet,找不到都会对应这个缺省的。使用springmvc开发没有其他的servlet,所以最终都会找dispatcherservlet
dispatcherservlet会进行虚拟路径匹配,他就会去匹配Controller里的@RequestMapping,
当请求jquery时,也会把它当成RequestMapping去匹配,但是最终找不到,所以就会报错
<mvc:resources mapping="" location="">
表示在springmvc框架中要开放哪些静态资源的访问权限,
另一种写法:
意思是 服务器找资源时,如果Controller里的@RequestMapping里没有,会使用原始的容器tomcat去找
2.6 请求数据乱码问题
在web.xml中配置
2.7 参数绑定注解@RequestParam
若Controller使用username接收,那么可以正常接收到
若Controller依旧使用username接收,那么可以就不可以接收到
那么这个时候就可以使用@RequestParam
然后进行访问:
- required,默认为true
当Controller只写@RequestParam("name")
时,进行以下访问会报错
- defaultValue
2.8 获得restful风格的参数
2.9 自定义类型转换器
页面请求的是数字,到达服务器的是字符串,客户端任何类型的请求参数到达服务器端都是字符串
但是springmvc提供了一些常用类型转换器,也就是下图的int age
但是下面这么访问就会报错:
所以要自定义一个类型转换器:
- 自定义一个转换器,实现springmvc的Converter方法
- spring-mvc.xml中声明转换器
- 在< annotation-driven >中引用转换器(下次注解扫描时,就会使用指定的自定义类型转换器完成日期类型转换)
- 测试
2.10 获得Servlet相关API
谁调方法谁负责传递参数,这里是springmvc框架调方法,所以springmvc来负责传递参数
2.11 获得请求头
1. @RequestHeader
2. @CookieValue