在处理器中匹配请求url时,url地址可以写模糊匹配的统配符:
?:能代替任意一个字符
*:能代替任意多个字符,和一层路径
**:能代替多层路径
下面用代码示例演示其使用:
// 精确匹配
@RequestMapping("/ant")
public String testAnt1() {
return "success";
}
//?:用来匹配一个字符,如匹配:ant1 、ant2、anta等请求,但是不能匹配路径,如:/aaa/ant不能匹配
@RequestMapping("/ant?")
public String testAnt2() {
return "success";
}
//*:可以匹配多个字符,如:antadwadd、antxxxx、ant1等
@RequestMapping("/ant*")
public String testAnt3() {
return "success";
}
//*:也可以匹配一层路径,注意:只能匹配一层,可以匹配/a/dwadawd/ant、/axxxx/ant等url的请求
@RequestMapping("/a/*/ant")
public String testAnt4() {
return "success";
}
//**:可以匹配多层路径,如 /b/dwad/wad/dwad/ge/g/eg/ant、/b/xx/yyy/xaa/ant等请求
@RequestMapping("/b/**/ant")
public String testAnt5() {
return "success";
}
注意:各个匹配url的优先级,精确匹配 > 带有?的匹配 > 带有*的匹配 > 大于 **的匹配