请求映射中的双星号

时间:2016-10-22 05:41:42

标签: java spring spring-mvc

在请求映射中出现双星号时,这意味着什么? 例如

@RequestMapping(value = { "/", "/welcome**" }, method =
RequestMethod.GET)  public ModelAndView welcomePage() { ...

2 个答案:

答案 0 :(得分:9)

普遍使用星号(以通配符表示)意味着

/welcome*:此文件夹或网址部分中的任何内容,以"/welcome"开头,在"/"下一个/welcomePage之前结束。

/welcome**:任何以"/welcome"开头的网址,包括/welcome/section2/section3//welcomePage/index等网址格式的子文件夹和子部分。

/welcome/*:欢迎中的任何文件,文件夹或部分(在下一个"/"之前),例如/welcome/index

/welcome/**:欢迎中的所有文件,文件夹,部分,子文件夹或子部分。

换句话说,一个星号*在下一个"/"之前结束,两个星号**没有限制。

答案 1 :(得分:0)

  1. Ant paths

  2. 网址映射排序。 From Spring Docs

  3.   

    当URL匹配多个模式时,使用排序来查找最多   特定的比赛。

         

    URI变量和通配符数量较少的模式是   考虑更具体。例如/ hotels / {hotel} / *有1个URI   变量和1张外卡并且被认为更具体   / hotels / {hotel} / **其中包含1个URI变量和2个外卡

    ...

      

    还有一些额外的特殊规则:

         
        
    • 默认映射模式/ **的特定程度低于任何其他模式。例如/ api / {a} / {b} / {c}更具体。
    •   
    • 诸如/ public / **之类的前缀模式不如任何其他不包含双通配符的模式特定。例如   / public / path3 / {a} / {b} / {c}更具体。
    •