Controller的使用

  1. @RestController
    用来处理http请求,Spring4之后新加的注解,原来返回json需要 @Controller 配合 @ResponseBody 实现,现在只需要一个 @RestController 即可

  1. @RequestMapping

    配置URL映射,限定请求方法、请求参数、请求头

    A. 在一个类的函数上面加上@RequestMapping(value = "/",method = RequestMethod.GET) 就是只能通过GET方式访问 http://127.0.0.1:8088/

    @RequestMapping(value = "/",method = RequestMethod.GET)
    public String index(){
        return "OK";
    }
    


    B. 在一个类的函数上面加上 @RequestMapping(value = "/" 就可以通过GET或者POST方式访问 http://127.0.0.1:8088/index

    @RequestMapping(value = "/index")
    public String index(){
        return "OK";
    }
    


    C. 在一个类的上面加上 @RequestMapping(value = "/index",method = RequestMethod.GET) ,要访问该类下面的函数,则URL链接中必须加上 /index ,访问链接 http://127.0.0.1:8088/index/index

    @RestController
    @RequestMapping(value = "/index",method = RequestMethod.GET)
    public class IndexController {
    
        @RequestMapping(value = "/index",method = RequestMethod.GET)
        public String index(){
            return "OK";
        }
    }
    
  2. @PathVariable

    带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义
    通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过
    @PathVariable("xxx") 绑定到操作方法的入参中。

    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    public String index(@PathVariable(value = "id",required = false) Integer myId){
        return "id:"+myId;
    }
    


    a. 放置方法1

    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    访问URL链接为http://127.0.0.1:8088/index/123 时输出 id:123

    b. 放置方法2

    @RequestMapping(value = "{id}/",method = RequestMethod.GET)
    访问URL链接为 http://127.0.0.1:8088/123/index 时输出 id:123

    @PathVariable(value = "id",required = false)
    value:获取URL中参数的值(要与 @RequestMapping(value = "/{id}") 中的id一致)
    required: 是否必选项

  3. @RequestParam

    绑定请求参数
    @RequestParam(value = "id",required = false,defaultValue = "1")
    value:获取URL中参数的值
    required: 是否必选项
    defaultValue: 默认的值

    @RequestMapping(value = "/",method = RequestMethod.GET)
    public String index(@RequestParam(value = "id",required = false,defaultValue = "1") Integer myId){
        return "id:"+myId;
    }
    


    访问URL为 http://127.0.0.1:8088/index/?id=12312 时输出内容为 id:12312
    访问URL为 http://127.0.0.1:8088/index/ 输出内容为 id:1,此时输出的为默认值

  4. @GetMapping

    组合注解, @GetMapping(value = "/index") 相当于 @RequestMapping(value = "/index",method = RequestMethod.GET) 的简化版,同样的还有 @PostMapping(value = "/index")

最后修改:2019 年 03 月 18 日
如果觉得我的文章对你有用,请随意赞赏