美文网首页
Spring MVC 常用注解

Spring MVC 常用注解

作者: _菩提本无树_ | 来源:发表于2020-05-20 11:16 被阅读0次

    一.请求常用注解

    @Controller(控制层)

    @RequestMapping()

    value:指定请求的实际地址
    @Controller
    @RequestMapping(value = "/user")
    public class AyUserController{
        @RequestMapping(value = {
              "",
              "/page",
              "page*",
              "view/*"
        })
        public String hello(Model model){
            model.addAttribute("message","hello ay");
            return "hello";
        }
    }
    //上面的代码下面的这几个请求都可以访问
    localhost:8080/user
    localhost:8080/user/
    localhost:8080/user/page
    localhost:8080/user/pageabc
    localhost:8080/user/view
    localhost:8080/user/view/view
    
    name:给映射地址一个别名
    method:GET,POST,PUT,DELETE等
    
    consumer:指定处理请求的提交内容类型(content-type),例如`application/json,text/html`
    produces:指定返回的内容类型,返回的内容必须是`request`请求头(accept)中包含的类型
    @Controller
    @RequestMapping(value = "/user")
    public class AyUserController{
        @RequestMapping(value = "/produces",produces = {
                "application/json"
        })
        @ResponseBody
        String getProduces(){
            returen "会返回Json类型的响应";
        }
        @RequestMapping(value= "/consumes",consumes = {
            "application/json",
            "application/xml"
        })
        String getConsumes(){
            return "可以同时处理json和xml内容";
        }
    
    }
    
    params:指定`request`中必须包含某些参数值时,才能让该方法处理
    headers:指定`request`中必须包含某些指定的header值时才能让该方法处理,设置请求头比如"content-type"
    

    @PathVariable("只有一个属性value")

    @Controller
    @RequestMapping(value = "/user")
    public class AyUserController{
       @GetMapping("/findById/{id}")
       public String findById(@PathVariable String id){
            //在请求时url,http://localhost:8080/user/findById/1时,请求中的id=1,
            //会将值赋给findById方法中的Id变量
            return "hello";
        }
    }
    

    二.参数绑定注解

    @RequestHeader

    可以将请求的报头信息映射到处理的方法参数上

    @Controller
    @RequestMapping(value = "/user")
    public class AyUserController{
       @GetMapping("/requestHeader")
       public String handle(@RequestHeader("Accept-Encoding") String[] encoding,
        @RequestHeader("Accept") String[] accept){
           return "hello";
        }
    }
    

    @CookieValue

    @Controller
    @RequestMapping(value = "/user")
    public class AyUserController{
       @GetMapping("/cookieValue")
       //相当于CookieValue通过cookie的key获取连接中的cookie
       public String handle(@CookieValue("JSESSIONID") String cookie){
           return "hello";
        }
    }
    

    @ResponseBody

    使用@ResponseBody注解后请求不会走视图请求(我写这个前提是我这个项目是jsp的项目),会将
    返回的内容当成json或xml返回前端,一般是ajax请求会使用这个注解,用了请求数据不是界面.
    

    @RequestBody

    前端将参数放到请求体中,一般是post请求,当数据量太大时,使用RequestBody接收
    @PostMapping("/getUserMessage")
    public String getUserMessages(@RequestBody(required = false) List<String> userList){
        List<DyUser> list = dyUserService.findUserByIds(userList);
        return "hello";
    }
    

    相关文章

      网友评论

          本文标题:Spring MVC 常用注解

          本文链接:https://www.haomeiwen.com/subject/feibohtx.html