Spring Boot 学习(一) 常用传参注解的使用
@PathVariable() 里面的参数可以是mapping里url的值,也可以是Map,Map必须是String Map(String,String),可以通过Map提取所有的路径变量
@GetMapping("/car/{id}/owner/{username}")
public Map<String,Object> getCar(@PathVariable("id") Integer id,//将获取的id值赋给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>


浙公网安备 33010602011771号