SpringMVC中常见用于参数位置的注解

1、@RequestParam:该注解的作用是将请求中指定名称的参数进行获取,可以指定该参数是否为必须,可以是get请求,也可以是post请求,可以该注解可以省略。
 
 
省略@RequestParam注解和不省略@RequestParam注解的区别在于:如果需要获取的参数是java自带的类型,省略和不省略就没啥区别,如果是我们在定义的类型,如果我们省略@RequestParam注解,就会将spring就会将参数列表对象中的对象的属性进行赋值,最终封装成为一个我们需要的对象,如果我们添加了@ReqeustParam注解,Spring将尝试从HTTP请求中解析对应的参数,并将其绑定到该方法参数上。也就是说,使用@RequestParam注解只能获取一些常见的类型,例如String、Long类型等,如果不使用注解Spring会默认将方法参数名称与HTTP请求参数名称进行匹配,然后将请求参数的值注入到方法参数中。当然,如果参数名不一致,也不会进行赋值,尽管没有进行赋值,但是任然会返回该类型的一个对象。
实例:

@GetMapping("/addSuccess")
    public String goToSuccess(@RequestParam(name = "skuId") Long skuId, Model model){
        CartItem cartItem = cartService.getItemBySkuId(skuId);
        model.addAttribute("cartItem",cartItem);
        return "success";
    }

2、@RequestBody:该注解的作用是将前端传给后端的JSON格式的请求封装为指定的对象类型,因为get请求没有请求体,所以@RequestBody只适用于POST请求
实例:

@ResponseBody
    @PostMapping("/test")
    public String test(@RequestBody TestObejct testObejct){
        return ""+testObejct;
    }

3、@CookieValue:获取指定cookie的cookie的值

@ResponseBody
    @PostMapping("/test")
    public String test(@CookieValue("cookieName") String s){
        return s;
    }

4、@PathVariable:该注解的作用是将@RequestMapping注解中的请求映射中的restful风格的参数进行获取

@ResponseBody
    @PostMapping("/test/{param}")
    public String test(@PathVariable("param") String param){
        return param;
    }
posted @ 2023-04-11 19:09  just1t  阅读(41)  评论(0编辑  收藏  举报