SpringMVC总结二:Controller的请求映射方式(RequestMapping)简单介绍
在SpringMVC总结一:快速入门的基础上简单介绍一下请求映射的方式:
1,标准映射规则
1、 @RequestMapping可以设置在类上,也可以设置在方法上
2、 请求的映射规则是:类上的RequestMapping + 方法上的RequestMapping
3、 如果没有写 / ,SpringMVC会自动补全
4、 类上的RequestMapping可以省略,这时直接用方法的RequestMapping访问
5、 路径不可重复
//加上Controller注解
@Controller
@RequestMapping("/test")//添加映射路径,可用来设置url
public class HelloController {
//映射注解
@RequestMapping("/helloSpringMVC")
public ModelAndView helloSpringMVC() {
ModelAndView mv = new ModelAndView();
mv.setViewName("hello");//设置视图名字
mv.addObject("msg", "hello springmvc 注解版 ===" + new Date().toLocaleString());
return mv;
}
}
2,Ant风格映射
1、? 匹配一个字符,如/hello? 可以匹配/hello1 /hello2,但是不能匹配/hello或者/hello12
2、* 匹配0个或多个字符, 如/hello/* 可以匹配/hello/demo或者/hello/demo2
3、**匹配0个或多个路径,如/hello/** 可以匹配/hello路径下的所有子路径,比如/hello/dd或者/hello/dd/cc/aa
4、最长匹配优先:
现在有4中映射路径:1,/hello/demo 2,/hello/**/abc 3,/hello/** 4,/**
如果请求为/hello/demo 那么优先匹配1,但是请求/hello/ddd则会匹配3,请求/hello/222/abc则匹配2,请求/ddd匹配4
//加上Controller注解
@Controller
@RequestMapping("/test")//添加映射路径,可用来设置url
public class HelloController {
//ant风格映射
@RequestMapping("/**/testAntMapping")
public ModelAndView antMapping() {
ModelAndView mv = new ModelAndView();
mv.setViewName("hello");//设置视图名字
mv.addObject("msg", "antMapping test ===" + new Date().toLocaleString());
return mv;
}
}
3,占位符映射
例如商品的url路径一般都是.../product/xxxxx.html,这个xxxxx可以设置成占位符
@RequestMapping(value="/product/{productid}") :占位符为productid,访问的路径可以是/product/123456或者/product/222等
通过@PathVariable 可以提取 URI 模板模式中的{xxx}中的xxx变量。
//加上Controller注解
@Controller
@RequestMapping("/test")//添加映射路径,可用来设置url
public class HelloController {
//占位符映射
@RequestMapping("/pathvariable/{id}")
public ModelAndView pathVariableMapping(@PathVariable("id") int id1) {
ModelAndView mv = new ModelAndView();
mv.setViewName("hello");//设置视图名字
mv.addObject("msg", "pathvariable id=" + id1);
return mv;
}
}
SpringMVC总结二:Controller的请求映射方式(RequestMapping)简单介绍的更多相关文章
- HTTP请求方式中8种请求方法(简单介绍)
简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的.当我们没有指定端口访问时,浏览器会 ...
- salesforce 零基础学习(二十九)Record Types简单介绍
在项目中我们可能会遇见这种情况,不同的Profile拥有不同的页面,页面中的PickList标签可能显示不同的值.这个时候,使用Record Types可以很便捷的搞定需求. Record Types ...
- SpringMVC(十二) RequestMapping使用POJO作为参数
将一个普通的JAVA类对象作为一个参数传入. POJO类Address: package com.tiekui.springmvc.pojo; public class Address { priva ...
- SpringMVC(十七-二十) ModelAttribute 注解
有点难理解. 修饰方法是表示在该控制器的所有目标方法执行前都执行该modelattribute注解的方法. 修饰参数是表示什么?修饰参数时@modelattributes(value="xx ...
- SpringMVC中的@Controller和@RequestMapping到底什么鬼?
1.1 @Controller是什么 首先看个例子: @Controller @RequestMapping("/blog") public class BlogControlle ...
- SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍
视图解析,请求Controller返回的视图类型: @Controller @RequestMapping("/test") public class TestController ...
- springMVC配置时,静态资源和jsp文件路径没错但是访问时controller的请求报404错误。
springMVC配置时,静态资源和jsp文件路径没错但是访问时controller的请求报404错误. 1.场景 如果在web.xml中servlet-mapping的url-pattern设置的是 ...
- SpringMVC学习笔记一(请求流程和配置,启动项目)
springmvc请求流程: 1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器. 3.处理器映 ...
- springmvc 发送PUT 和 DELETE 请求
一: 发送 DELETE 或者 PUT 请求: 1.在表单中加入一个隐藏的参数: _method , 值是 DELETE (或者PUT) <form action="springmv ...
随机推荐
- android 删除SD卡或者手机的缓存图片和目录
public static final String TEMP_PHOTO_FILE_NAME = "temp_photo.jpg"; private static String ...
- ng 服务
服务的本质是单例对象,封装一些方法和属性的. 单例模式:在实例化变量的时候,如果该变量已经存在,直接返回该变量:如果不存在,就创建一个新的变量再返回 ng自带的服务有很多,常用:$location $ ...
- 部署tinyproxy透明代理服务
线上需要一个https的透明代理,开始打算用nginx,调试了一段时间发现配置较复杂且没有成功.后来用的tinyproxy做的透明代理.安装配置过程就是下载.解压.编译.安装.配置.启动一波流: 安装 ...
- 在Blender上安装RenderMan插件
2018/3/27 Download and Install Blender itself Download RenderMan Installer (Need to register an acco ...
- 前端之jQuery02
文档操作 重点:创建标签,jQuery里面没有这个方法 内部(子标签) 添加到指定元素内部后面 $(A).append(B): // B作为A的最后一个儿子元素:(把B追加到A) $(A).appen ...
- I.MX6 View长宽大于屏的分辨率
/******************************************************************************** * I.MX6 View长宽大于屏的 ...
- iOS6和iOS7代码的适配(5)——popOver
popOver这个空间本身是iPad only的,所以iPhone上见不到,我记得微信上有个这样的弹出框,有扫一扫等几个菜单项,估计这是腾讯自己实现的,用于菜单的扩展. popOver从iOS6到iO ...
- jstl中的用法
版权声明:本文为博主原创文章,未经博主允许不得转载. 在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者 ...
- 20165222 实验一java开发环境的熟悉
实验内容及步骤 实验一 Java开发环境的熟悉-1 1 建立“自己学号exp1”的目录 2 在“自己学号exp1”目录下建立src,bin等目录 3 javac,java的执行在“自己学号exp1”目 ...
- python 递归函数和二分查找
1.初始递归 递归属于函数中的一种特殊函数,功能迅速并且干净利落,在函数中递归的基本就是在函数中调用自己本身 def func(): print(111) func() func()#将会无限循环‘1 ...