1、知识点:
1)、@PathVariable``(``"username"``) ``String name
可以获取请 @RequestMapping``(``"/car/{id}/name/{username}"``)
求路径上,单个字段的值,也可以通过Map集合获取所有字段的的值。
2)、@PathVariable ``Map``<``String``,``String``> pv
可以获取@RequestMapping``(``"/car/{id}/name/{username}"``)
中,请求路径上所有字段的值。
中,所有的字段值。Map的key、value数据类型必须都是String。
2、**@PathVariable**
基本使用方法:
第一步:编写请求页面,以idex页面为例。获取a标签请求地址href="car/15/name/张三"
中的15
与张三
。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="car/15/name/张三">@PathVariable</a>
</body>
</html>
第二步:编写wbe层,用@PathVariable 注解,获取参数
1) @RequestMapping``(``"/car/{id}/name/{username}"``)
中使用EL表达式获取请求地址中对应字段的值。
2)通过@PathVariable``(``"username"``) ``String ``name
等获取@RequestMapping EL表达式对应的字段值。
其中,@PathVariable``(``"username")
获取 @RequestMapping``(``"/car/{id}/name/{username}")
中的username。
而,@PathVariable``(``"username"``) ``String name
是把 "username"
赋值给 name
。
3)、@PathVariable ``Map``<``String``,``String``> pv
是获取 @RequestMapping``(``"/car/{id}/name/{username}"``)
中,所有的字段值。
package com.wzy.springbootweb01.controller;
import org.springframework.context.annotation.EnableMBeanExport;
import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.rmi.MarshalledObject;
import java.util.HashMap;
import java.util.Map;
@RestController
public class MyController {
@RequestMapping("/car/{id}/name/{username}")
public Map<String,Object> pathVariable(@PathVariable("id") Integer id,
@PathVariable("username") String name,
@PathVariable Map<String,String> pv){
Map<String,Object> map = new HashMap<>();
map.put("id",id);
map.put("name",name);
map.put("pv",pv);
return map;
}
}
输出结果: