目录
@RequestMapping注解的位置
@RequestMapping注解的属性
value属性
method属性
params属性(了解)
headers属性(了解)
在前面的小案例中我们就使用过该注解,接下来是对该注解的详细学习
@RequestMapping 注解的位置可以设置在类和方法上
标识类:设置映射请求的请求路径的初始信息,可以用来表示不同的类
标识方法:设置映射请求的请求路径的具体信息,用来表示类中的方法
@Controller
@RequestMapping("/test")
public class RequestMappingController {
@RequestMapping("/testRequestMapping")
public String moveSuccess(){
return "success";
}
}
如果我们按照上面方式进行配置,那么此时请求的请求路径应为 /test/testRequestMapping,主要可以用来区别不同的模块中名称相同的请求。
总共有以上8种属性,主要学习以下几种属性
由上图可知 value 值可设置为字符串数组的形式,表示该请求映射能够匹配多个请求地址所对应的请求
注意:value 属性的值必须进行设置
下面我们用一个案例来进行演示
前台页面:设置两个跳转链接
首页
首页
测试 testRequestMapping 注解的value属性-->/testRequestMapping
测试 testRequestMapping 注解的value属性-->/test
控制器:我们在将 value 值设置为了一个 String 数组,包含有前台页面的两个跳转路径
@Controller
public class RequestMappingController {
@RequestMapping(
value = {"/testRequestMapping", "/test"}
)
public String moveSuccess(){
return "success";
}
}
分别点击两个跳转链接,测试能否成功跳转到 success.index 页面,结果都成功跳转了
method 属性是通过请求的请求方式(get或post)来匹配请求映射,并且 method 属性是一个 RequestMethod 类型的数组,表示请求映射能够匹配多种请求方式的请求,如果不设置 method 那么默认匹配所有请求方式,具体属性值有以下8种
设置方法如下
@RequestMapping(
value = {"/testRequestMapping", "/test"},
method = {RequestMethod.GET, RequestMethod.POST})
public String moveSuccess(){
return "success";
}
并且在 SpringMVC 中还提供了 @RequestMapping 的派生注解
①:处理get请求的映射-->@GetMapping
②:处理post请求的映射-->@PostMapping
③:处理put请求的映射-->@PutMapping
④:处理delete请求的映射-->@DeleteMapping
常用的请求方式是 get、post、put、delete,但是在浏览器中目前只支持 get 和 post,如果要发送put 和 delete 请求则需要通过spring提供的过滤器 HiddenHttpMethodFilter
params 属性是通过请求的请求参数匹配请求映射,并且其是一个 String 类型的数组。我们可以通过不同的表达式来设置如下四种请求参数和请求映射的匹配关系
①:params = "参数名"
params = {"username"} //表示请求的请求参数必须携带 username 请求参数
②:params != "参数名"
params = {"!username"} //表示请求携带的请求参数不能携带 username 参数
③:params = "参数名=参数值"
params = {"username=张三"} //表示请求的请求参数必须携带 username 请求参数,并且 username 的值为张三
④:params = "参数名!=参数值"
params = {"username=张三"} //表示请求的请求参数必须携带 username 请求参数,并且 username 的值不能为张三
我们可以在数组中灵活的设置所需要满足的参数要求来实现想要的功能
header 属性是通过请求的请求头信息来匹配请求映射,请求头信息可在网页中进行查看
header 属性是一个 String 类型的数组,设置方法和 params 属性设置方法的类似