本文引自: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;
}
}

注解@RequestMapping value 用法的更多相关文章

  1. 注解@RequestMapping 的使用

    1首先@RequestMapping 中的值,我们说请求方法l路径,请求url我们都知道怎么请求了,在第一节helloworld中, 我们先说我们先建一个类,RequestMappingTest 方法 ...

  2. Hibernate 注解中CascadeType用法汇总

    这两天,参加一个课程设计,同时这个项目又作为一个模块镶嵌到其他项目中,考虑如此,应与原先的架构相同,因牵扯到留言和相互@功能,故数据库之间OneToOne,OneToMany,ManyToMany之风 ...

  3. SpringMVC使用注解@RequestMapping映射请求

    pringMVC通过使用@RequestMapping注解,实现指定控制器可以处理哪些URL请求. 控制器的类定义及方法定义处都可以标注@RequestMapping: 类定义处:提供初步的请求映射信 ...

  4. Springmvc中@RequestMapping 属性用法归纳

    简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestM ...

  5. 注解 @RequestMapping

    通过RequestMapping注解可以定义不同的处理器映射规则. 1.URL路径映射 @RequestMapping(value="/item")或@RequestMapping ...

  6. SpringMVC注解@RequestMapping之produces属性导致的406错误

    废话不多说,各位,直接看图说话,敢吗?这个问题网上解决的办法写的狠是粗糙,甚至说这次我干掉它完全是靠巧合,但是也不否认网上针对406错误给出的解决方式,可能是多种情况下出现的406吧?我这次的流程就是 ...

  7. SpringMVC注解@RequestMapping @RequestParam @ResponseBody 和 @RequestBody 解析

    SpringMVC Controller层获取参数及返回数据的方式: @RequestMapping @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 C ...

  8. Java—RequestMapping相关用法

    RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径.它有6个属性:1.value:指定请求的具体地址:valu ...

  9. SpringMVC注解@RequestMapping全面解析---打酱油的日子

    @RequestMapping 可以出现在类级别上,也可以出现在方法上.如果出现在类级别上,那请求的 url 为 类级别上的@RequestMapping + 方法级别上的 @RequestMappi ...

随机推荐

  1. 【线段树 集合hash】bzoj4373: 算术天才⑨与等差数列

    hash大法好(@ARZhu):大数相乘及时取模真的是件麻烦事情 Description 算术天才⑨非常喜欢和等差数列玩耍.有一天,他给了你一个长度为n的序列,其中第i个数为a[i].他想考考你,每次 ...

  2. linux中复制文件夹的所有文件到指定目录

    这里我们的需求是需要将一个文件夹中的所有文件都复制到另一个文件夹中,而不是将一个文件夹复制到另外一个文件夹中. //这里需要使用到-R参数,表示递归处理,将指定目录下的所有文件与子目录一并处理//一开 ...

  3. Linux下关于/tmp目录的清理规则

    本文将介绍Linux下/tmp目录的清理规则,rhel6和rhel7将以完全不同的两种方式进行清理. RHEL6 tmpwatch命令 tmpwatch 是专门用于解决“删除 xxx天没有被访问/修改 ...

  4. JavaScript正则表达式-重复次数(数量词)

    *:表示对前面表达式的匹配出现零次或多次. var reg_pattern = /bo*/;//匹配b.bo.boooo +:表示对前面表达式的匹配连续出现一次或多次. var reg_pattern ...

  5. Java面试——String、StringBuider以及StringBuffer的区别和使用场景

    1.  String.StringBuider.StringBuffer的区别  String是不可变的对象,因此在每次对String类型进行改变的时候,都会生成一个新的String对象,然后将指针指 ...

  6. python基础学习笔记——time模块

    time模块 time翻译过来就是时间,有我们其实在之前编程的时候有用到过. #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取 ...

  7. Leetcode 337.大家结舍III

    打家劫舍III 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称之为"根".除了"根"之外,每栋房子有且只有 ...

  8. HDU-1532 Drainage Ditches,人生第一道网络流!

    Drainage Ditches 自己拉的专题里面没有这题,网上找博客学习网络流的时候看到闯亮学长的博客然后看到这个网络流入门题!随手一敲WA了几发看讨论区才发现坑点! 本题采用的是Edmonds-K ...

  9. 九度oj 题目1159:坠落的蚂蚁

    题目描述: 一根长度为1米的木棒上有若干只蚂蚁在爬动.它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右.如果两只蚂蚁碰头,则它们立即交换速度并继续爬动.三只蚂蚁碰头,则两边的蚂蚁交换速度, ...

  10. 只操作git(cmd)就可以使用git将项目上传到github

    代码改变世界 使用git将项目上传到github(最简单方法) 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具, ...