RequestMapping注解
作用:用于建立请求URL和处理请求方法之间的对应关系
出现位置:
类上:请求URL的第一级访问目录
方法上:请求URL的第二级访问目录
属性:
value:用于指定请求的URL,和path属性的作用是一样的
method:用于指定请求的方式
params:用于指定限制请求参数的条件。它支持简单的表达式,要求请求参数的key和value必须和配置一模一样
例如:
headers:用于指定限制请求消息头的条件
请求参数的绑定
表单中的请求参数都是基于key=value的
SpringMVC绑定请求参数的过程是通过把表单提交请求参数,作用控制器中方法参数进行绑定的
例如:
支持绑定的数据类型
- 基本类型参数:包括基本类型和String类型
- POJO类型参数:包括实体类,以及关联的实体类
- 数组和集合类型参数:包括List结构和Map结构的集合(包括数组)
SpringMVC绑定请求参数是自动实现的,但是要想使用,必须遵循使用要求。
使用要求
如果是基本类型或者String类型:要求我们的参数名称必须和控制器中方法的形参名称保持一致。(严格区分大小写)
如果是POJO类型,或者是它的关联对象:要求表单中参数名称和POJO类的属性名称保持一致,并且控制器方法的参数类型是POJO类型
如果是集合类型,有两种方式:
使用示例
基本类型和String类型作为参数
POJO类型作为参数
实体类代码
jsp代码
控制器代码:
POJO类中包含集合类型参数
实体类代码
jsp代码
控制器代码
RequestParam注解
作用:把请求中指定名称的参数给控制器中的形式参数
属性:
value:请求参数中的额名称
require:请求参数中是否必须提供此参数,默认值:true,表示必须提供,如果不提供将报错
使用示例
jsp中的代码
控制器中的代码
运行结果
RequestBody注解
作用:用于获取请求体内容,直接使用得到是key=value&key=value......结构的数据
属性:
required:是否必须有请求体,默认值是:true,当取值为true时,get请求方式会报错,如果取值为false,get请求得到的是null
使用示例
jsp代码
控制器代码
输出
PathVaribale注解
作用:用于绑定url中的占位符,例如,请求url中/delete/{id},这个{id}就是url占位符
属性:
value:用于指定url中占位符
required:是否必须提供占位符
使用示例
jsp代码
控制器代码
运行结果
RequestHeader注解
作用:用于获取消息头
属性:
value:提供消息头名称
require:是否必须有此消息头
注意:在实际开发中一般不怎么用
使用示例
jsp中的代码
控制器代码
运行结果
CookieValue注解
作用:用于把指定cookie名称的值传入控制器方法参数
属性:
value:指定cookie的名称
required:是否必须有此cookie
使用示例
jsp代码
控制器代码
运行结果
ModelAttribute注解
作用:出现在方法上,表示当前方法会在控制器的方法执行之前,先执行,它可以修饰没有返回值的方法,也可以修饰有具体返回值的方法;出现在参数上,获取指定的数据给参数赋值
属性:
value:用于获取数据的key,key可以是POJO的属性名称,也可以是map结构的key。
SessionAttribute注解
作用:用于多次执行控制器方法间参数共享
属性:
value:用于指定存入的属性名称
type:用于执行存入的数据类型
使用示例
jsp中的代码
控制器中的代码
运行结果