zoukankan      html  css  js  c++  java
  • 【记录】注解@RequestMapping value 用法

    本文引自:https://blog.csdn.net/qq_33811662/article/details/80864784

    RequestMapping是一个用来处理请求地址映射的注解,可用于类、接口货方法上,用于类或者接口上的时候,表示类中的所有相应请求的方法都是以该地址作为父路径,基本字段有name,path(value)(path 和 value 互相引用),method,params,headers,consumes,produces

    比较常用的有:

    value(path)
      指定请求的实际地址,指定的地址可以是 URI Template 模式

    method
      指定请求的 method 类型。例如 GET、POST、PUT、DELETE 等

    consumes
      指定处理请求的提交内容类型(Content-Type),例如application/json,text/html;

    produces
      指定返回的内容类型,仅当 request 请求头中的(Accept)类型中包含该指定类型才返回

    params
      指定 request 中必须包含某些参数值,才让该方法处理请求。

    header
      指定 request 中必须包含某些指定的 header 值,才能让该方法处理请求。

    value 用法:
    在方法上声明:

    @Controller
    public class LoginController {
    @RequestMapping("/to_login")
    public ModelAndView toLogin(){
    System.out.println("进入 to_login");
    ModelAndView mv = new ModelAndView();
    mv.setViewName("login");
    return mv;
    }


    此时请求地址为 ip/项目名/to_login


    在类上声明一个 @RequestMapping 注解:

    @Controller
    @RequestMapping("/login")
    public class LoginController {
    @RequestMapping("/to_login")
    public ModelAndView toLogin(){
    System.out.println("进入 to_login");
    ModelAndView mv = new ModelAndView();
    mv.setViewName("login");
    return mv;
    }


    则此时请求地址为 ip/项目名/login/to_login

    * 普通 URL 映射:@RequestMapping({“/to_login”,”login”}):多个URL路径可以映射到同一个处理器的功能处理方法
    * URI 模版模式映射

    1、@RequestMapping(“/login/{userId}”):{xx} 占位符请求URL 可以是 “/login/123” 或 “/login/abc”。通过@PathVariable 可以提取 URI 模版模式中的 {xx} 中的 xx 变量的值。
    2、@RequestMapping(“/login/{userId}/topic”):请求的 URL 可以是 “/login/uid/topic”
    3、@RequestMapping(“/login/{userId}/topic/{topicId}”):请求的 URL 可以是 “/login/uid/topic/tid”


    Ant 风格的 URL 路径映射
    1、@RequestMapping(“/login/**”):可以匹配 “/login/abc/abc”,但 “/login/abc” 将会被 URI 模版模式映射中的 “/login/{userId}” 模式优先映射到(最长匹配优先)
    2、@RequestMapping(“/login/abc?”):可匹配 “/login/abcd” 或者 “/login/abc1”,但不匹配 “/login/abc” 或 “/login/abcde”
    3、@RequestMapping(“/login/abc*”):可匹配 “/login/abcd” 或 “/login/abcde”,但不匹配 “/login/abc”
    代码示例:

    @Controller
    @RequestMapping("/login")
    public class LoginController {
    @RequestMapping("/to_login")
    public ModelAndView toLogin() {
    System.out.println("进入 to_login");
    ModelAndView mv = new ModelAndView();
    mv.addObject("path", "/to_login");
    mv.setViewName("login");
    return mv;
    }

    @RequestMapping({"/to_login2","/login"})
    public ModelAndView toLogin2() {
    System.out.println("进入 to_login");
    ModelAndView mv = new ModelAndView();
    mv.addObject("path", "/to_login2,/login");
    mv.setViewName("login");
    return mv;
    }

    @RequestMapping({"/to_login/abc?"})
    public ModelAndView toLogin3() {
    System.out.println("进入 to_login");
    ModelAndView mv = new ModelAndView();
    mv.addObject("path", "/to_login/abc?");
    mv.setViewName("login");
    return mv;
    }
    @RequestMapping({"/to_login/abc*"})
    public ModelAndView toLogin4() {
    System.out.println("进入 to_login");
    ModelAndView mv = new ModelAndView();
    mv.addObject("path", "/to_login/abc*");
    mv.setViewName("login");
    return mv;
    }
    @RequestMapping("/**")
    public ModelAndView toLogin5() {
    System.out.println("进入 /**");
    ModelAndView mv = new ModelAndView();
    mv.addObject("path", "/**");
    mv.setViewName("login");
    return mv;
    }

    @RequestMapping("/to_login/**")
    public ModelAndView toLogin6() {
    System.out.println("进入 /to_login/**");
    ModelAndView mv = new ModelAndView();
    mv.addObject("path", "/to_login/**");
    mv.setViewName("login");
    return mv;
    }

    @RequestMapping("/to_login/abc")
    public ModelAndView toLogin7() {
    System.out.println("进入 /to_login/abc");
    ModelAndView mv = new ModelAndView();
    mv.addObject("path", "/to_login/abc");
    mv.setViewName("login");
    return mv;
    }

    @RequestMapping("/**/abc")
    public ModelAndView toLogin8() {
    System.out.println("进入 /**/abc");
    ModelAndView mv = new ModelAndView();
    mv.addObject("path", "/**/abc");
    mv.setViewName("login");
    return mv;
    }

    @RequestMapping("/*/*")
    public ModelAndView toLogin9() {
    System.out.println("进入 /*/*");
    ModelAndView mv = new ModelAndView();
    mv.addObject("path", "/*/*");
    mv.setViewName("login");
    return mv;
    }
    }

  • 相关阅读:
    一、Flask_安装与使用
    Django_rest_framework(DRF)
    day_45_Django
    meta标签、利用媒体查询 link不同的CSS文件
    文本框设置:随内容增加而增高
    jquery 设置 html标签响应式布局
    CSS hack处理
    一些前端网址记录
    前端学习之路
    图片轮播(手动点击)
  • 原文地址:https://www.cnblogs.com/wbl001/p/SpringMVC.html
Copyright © 2011-2022 走看看