何谓映射路径呢?
映射路径,就是匹配请求路径和执行方法关系的路径
基于注解的映射路径可以忽略前后缀,如:
@RequestMapping(value="/say.do")
@RequestMapping(value="say.do")
@RequestMapping(value="/say")
@RequestMapping(value="say")
以上者四种写法效果一样,但是第三种写法较为常用,简洁明了。
三种映射路径
1.标准映射路径
@RequestMapping(value="/say.do")
2.带通配符的映射路径
在映射路径设置通配符,让一个路径可以接收多个请求的匹配
? 只能匹配单个字符,不能匹配0个或多个字符
* 匹配同一级路径目录0~N字符
* * 匹配多级路径目录
路径目录是什么呢?
请求路径中每个/就是一个路径目录
如:http://localhost:8080/springmvc-demo-03-config/aa/bb/ccc/say.mvc
通配符之间的优先级别:
无通配符> ? > * > **
所以被?号通配,使用*号就不能通配,使用*通配不能使用**通配了
3.带路径变量映射路径
路径变量,就是将参数放在路径里面,而不放在?的后面
有一种技术是伪静态页面技术,就是通过这种方法实现的
配置步骤:
1.指定请求路径的路径变量为如下格式
${pageContext.request.contextPath } / zhangsan/say
问:如何让执行方法获得请求路径中的zhangsan呢?
2.在执行方法的参数声明一个变量接收路径变量
@PathVariable String name
部分实现代码:
写法①
@RequestMapping(value="{name}/say") public String say(@PathVariable String name){ //测试代码 }
写法②
@RequestMapping(value="{name}/say")
//@PathVariable可以指定name
public String say(@PathVariable("name") String dd){ //测试代码
}
路径变量有什么作用呢?
主要作用是实现伪静态