注解@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;
}
}
注解@RequestMapping value 用法的更多相关文章
- 注解@RequestMapping 的使用
1首先@RequestMapping 中的值,我们说请求方法l路径,请求url我们都知道怎么请求了,在第一节helloworld中, 我们先说我们先建一个类,RequestMappingTest 方法 ...
- Hibernate 注解中CascadeType用法汇总
这两天,参加一个课程设计,同时这个项目又作为一个模块镶嵌到其他项目中,考虑如此,应与原先的架构相同,因牵扯到留言和相互@功能,故数据库之间OneToOne,OneToMany,ManyToMany之风 ...
- SpringMVC使用注解@RequestMapping映射请求
pringMVC通过使用@RequestMapping注解,实现指定控制器可以处理哪些URL请求. 控制器的类定义及方法定义处都可以标注@RequestMapping: 类定义处:提供初步的请求映射信 ...
- Springmvc中@RequestMapping 属性用法归纳
简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestM ...
- 注解 @RequestMapping
通过RequestMapping注解可以定义不同的处理器映射规则. 1.URL路径映射 @RequestMapping(value="/item")或@RequestMapping ...
- SpringMVC注解@RequestMapping之produces属性导致的406错误
废话不多说,各位,直接看图说话,敢吗?这个问题网上解决的办法写的狠是粗糙,甚至说这次我干掉它完全是靠巧合,但是也不否认网上针对406错误给出的解决方式,可能是多种情况下出现的406吧?我这次的流程就是 ...
- SpringMVC注解@RequestMapping @RequestParam @ResponseBody 和 @RequestBody 解析
SpringMVC Controller层获取参数及返回数据的方式: @RequestMapping @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 C ...
- Java—RequestMapping相关用法
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径.它有6个属性:1.value:指定请求的具体地址:valu ...
- SpringMVC注解@RequestMapping全面解析---打酱油的日子
@RequestMapping 可以出现在类级别上,也可以出现在方法上.如果出现在类级别上,那请求的 url 为 类级别上的@RequestMapping + 方法级别上的 @RequestMappi ...
随机推荐
- ios之UISearchBar
当你在seachBar中输入字母之前的时候,只是用鼠标选中searchBar的时候,如图 终端输出截图如下:(这个时候调用先shouldBeginEditing,之后调用didBeginEditing ...
- Noip2018 考前准备
目录 基础算法 二分 模拟(未补) 高精(未学习) 搜索(未补) 排序 图论 树的直径 树的重心 最短路算法 Spfa Dijkstra Floyd 最小生成树 kruskal 数论 线性筛 线性筛素 ...
- 译文 编写一个loader
https://doc.webpack-china.org/contribute/writing-a-loader loader是一个导出了函数的node模块,当资源须要被这个loader所转换的时候 ...
- 浮动的label
在web项目中,有一个很重的模块就是登陆/注册模块,这个模块的主体部分就是一个form表单,这个form表单包含两个重要input组(用户名/密码),每个input组都包含label和input,而关 ...
- 【linux】 【网络】【转发】服务器版自定义安装无法有线上网问题
- day23 02 组合(继续人狗大战游戏)
day23 02 组合(继续人狗大战游戏) 面向对象的三大特性:继承 多态 封装 先讲解一下组合 组合:一个对象的属性值是另一个类的对象:对象.属性.属性(一般有两个点) 继续扩展day22 01里面 ...
- Python文件指针与Python函数
文件内指针移动:f.seek() 强调:只有t模式下read(n),n代表字符的个数,除此以外都是以字节为单位. """ 文件内容:哈哈哈哈 呵呵呵呵 "&qu ...
- Oracle联合主键
转https://www.cnblogs.com/king-xg/p/6721272.html alter table tablename add constraint unionkeyname pr ...
- Lex与Yacc学习(九)之Yacc语法
Yacc语法 本文讨论yacc语法的格式并描述可用的各种特征和选项 yacc语法结构 yacc语法包括三部分:定义段.规则段和用户子例程段 ...定义段... %% ...规则段... %% ...用 ...
- linux 使用mail 发送邮件
配置: /etc/mail.rc 追加配置参数 set from=lynctest@iclinux.com smtp="mail.iclinux.com"smtp-auth-use ...