@PathVariable() 里面的参数可以是mapping里url的值,也可以是Map,Map必须是String Map(String,String),可以通过Map提取所有的路径变量
@GetMapping("/car/{id}/owner/{username}") public Map<String,Object> getCar(@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; }
路径上的参数可以被动态替换
@RequestHeader 获取请求头信息
也可以传Map(String,String)将所有请求参数的值存放进Map里,带Key只拿一个,不带拿所有
RequestHeader("User-Agent") String userAgent,//带了Key只获取一个参数
RequestHeader Map<String,String> header //没有带Key获取所有的参数
@GetMapping("/car/{id}/owner/{username}") public Map<String,Object> getCar(@PathVariable("id") Integer id, @PathVariable("username") String name, @PathVariable Map<String,String> pv, @RequestHeader("User-Agent") String userAgent, //传头信息 @RequestHeader Map<String,String> header) { //传所有的头信息 Map<String,Object> map = new HashMap<>(); map.put("id",id); map.put("name",name); map.put("pv",pv); map.put("userAgent",userAgent); map.put("header",header); return map; }
@RequestParam 获取请求参数
@GetMapping("/car/{id}/owner/{username}") public Map<String,Object> getCar( @RequestParam Integer age, @RequestParam("inters") List<String> inters, //因为传的参有2个inters,所以这里用列表来存储 @RequestParam Map<String ,String > parms) { //获取所有的传递参数,但是这里会少一个参数,Map<String,String>没法保存为一个列表 Map<String,Object> map = new HashMap<>(); map.put("age",age); map.put("inters",inters); map.put("parms",parms); return map; }
补充
这里的Map 会缺少一个参数,改用MultiValueMap
@RequestParam MultiValueMap<String ,String > parms,
@CookieValue 来获取cookie的值 注意这里的 _xsrf 要通过观察浏览器抓包,查看cookie的值
@CookieValue("_xsrf") String _xsrf)
map.put("_xsrf",_xsrf); 注意Map的put方法里的参数一定是key value
@CookieValue("_xsrf") Cookie cookie) 获取cookie对象,
System.out.println(cookie.getName());//来获取cookie的名字
System.out.println(cookie.getValue());//来获取cookie的值
System.out.println(cookie.getName()+"============>"+cookie.getValue());
@RequestBody //获取请求体
注意:只有post请求才有请求体,例如表单提交
@PostMapping("/user/message") public Map<String,Object> postMethod(@RequestBody String content) { Map<String,Object> map = new HashMap<>(); map.put("content",content); return map; }
<form action="/user/message" method="post"> UserName:<input name="suer" type="text"> 注意这里一定要加上name,因为获取RequestBody返回的值是Map PassWord:<input name="pass" type="password"> <input type="submit" value="Submit"> </form>