Java教程

Spring Boot 学习(一) 常用传参注解的使用

本文主要是介绍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,
                                     @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>

 

这篇关于Spring Boot 学习(一) 常用传参注解的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!