Ant风格的资源地址支持3种匹配符:
?:匹配文件名中的一个字符
* :匹配文件名中的任意字符
** : **匹配多层路径
@RequestMapping还支持Ant风格的URL
/user/*/createUser: 匹配 /user/aaa/createUser; /user/bbb/createUser 等URL
=> 中间会有一个路径层
/user/**/createUser: 匹配 /user/createUser; /user/aaa/bbb/createUser 等URL
=> URL头尾是确定的,中间可以是任意个路径层,也可以没有任何路径层
/user/createUser??: 匹配 /user/createUseraa; /user/createUserbb
=> 一个问号代表一个字符,在指定问号的位置可以是任意的字符
举例:
<h3>使用Ant风格URL</h3>
<a href="springmvc/anything/antstyle">Ant Style 风格 URL</a>
@RequestMapping(value="/*/antstyle")
public String antStyle() {
System.out.println("you in ant style url!");
return "success";
说明:
访问路径springmvc/anything/antstyle中anything可以切换成一个任意路径名称,
不会影响访问结果,因为requestMapping中*表示可以替代任意一层路径名称
如果此时requestMapping改为@RequestMapping(value="/**/antstyle")
则说明只要确定了类的reqeustMapping和方法访问的antStyle,
中间可以放置任意层级的路径都是可以访问成功的
带有占位符的URL映射
@PathVariable 映射URL绑定的占位符
通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中:
URL中的{xxx}占位符可以通过@PathVariable("xxx")绑定到操作方法的入参中
例如:
/*Rest风格的url请求*/
@RequestMapping(value="/rest/{name}")
public String restPathVariable(@PathVariable(value="name") String name) {
System.out.println("通过Rest风格Url传入的name参数:" + name);
return "success";
}
访问的url:
http://localhost:8080/spring-mvc-1/springmvc/rest/zhangsan