在请求映射中出现双星号时,这意味着什么? 例如
@RequestMapping(value = { "/", "/welcome**" }, method =
RequestMethod.GET) public ModelAndView welcomePage() { ...
答案 0 :(得分:9)
普遍使用星号(以通配符表示)意味着
/welcome*
:此文件夹或网址部分中的任何内容,以"/welcome"
开头,在"/"
下一个/welcomePage
之前结束。
/welcome**
:任何以"/welcome"
开头的网址,包括/welcome/section2/section3/
或/welcomePage/index
等网址格式的子文件夹和子部分。
/welcome/*
:欢迎中的任何文件,文件夹或部分(在下一个"/"
之前),例如/welcome/index
。
/welcome/**
:欢迎中的所有文件,文件夹,部分,子文件夹或子部分。
换句话说,一个星号*在下一个"/"
之前结束,两个星号**没有限制。
答案 1 :(得分:0)
网址映射排序。 From Spring Docs:
当URL匹配多个模式时,使用排序来查找最多 特定的比赛。
URI变量和通配符数量较少的模式是 考虑更具体。例如/ hotels / {hotel} / *有1个URI 变量和1张外卡并且被认为更具体 / hotels / {hotel} / **其中包含1个URI变量和2个外卡
...
还有一些额外的特殊规则:
- 默认映射模式/ **的特定程度低于任何其他模式。例如/ api / {a} / {b} / {c}更具体。
- 诸如/ public / **之类的前缀模式不如任何其他不包含双通配符的模式特定。例如 / public / path3 / {a} / {b} / {c}更具体。