博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
注解@RequestMapping value 用法
阅读量:5806 次
发布时间:2019-06-18

本文共 3795 字,大约阅读时间需要 12 分钟。

本文引自:

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;
}
}

 

转载于:https://www.cnblogs.com/wbl001/p/SpringMVC.html

你可能感兴趣的文章
文件查找
查看>>
shell编程前言(一)
查看>>
5、centos7.*配置yum的EPEL源及其它源
查看>>
JSON前后台简单操作
查看>>
shell中一些常见的文件操作符
查看>>
CentOS 7 装vim遇到的问题和解决方法
查看>>
JavaScript基础教程1-20160612
查看>>
使用第三方类、库需要注意的正则类RegexKitLite的使用
查看>>
iOS \U7ea2 乱码 转换
查看>>
FCN图像分割
查看>>
ios xmpp demo
查看>>
设计模式之-工厂模式、构造函数模式
查看>>
python matplotlib 中文显示参数设置
查看>>
数据库事务隔离级别
查看>>
os模块大全详情
查看>>
【ros】Create a ROS package:package dependencies报错
查看>>
从内积的观点来看线性方程组
查看>>
kali linux 更新问题
查看>>
HDU1576 A/B【扩展欧几里得算法】
查看>>
廖雪峰javascript教程学习记录
查看>>