请求映射中的双星号
2022-09-02 09:48:02
当请求映射中存在双星号时,这意味着什么?例如
@RequestMapping(value = { "/", "/welcome**" }, method =
RequestMethod.GET) public ModelAndView welcomePage() { ...
当请求映射中存在双星号时,这意味着什么?例如
@RequestMapping(value = { "/", "/welcome**" }, method =
RequestMethod.GET) public ModelAndView welcomePage() { ...
普遍说的星号(通配符角色)表示
/welcome*
:此文件夹或 URL 部分中的任何内容,在下一个 like 之前以 开头和结尾。"/welcome"
"/"
/welcomePage
/welcome**
:任何 URL,以包括 URL 模式的子文件夹和子部分(如 或 )开头。"/welcome"
/welcome/section2/section3/
/welcomePage/index
/welcome/*
:欢迎(在下一个之前)欢迎内的任何文件,文件夹或部分,例如。"/"
/welcome/index
/welcome/**
:欢迎使用任何文件、文件夹、分区、子文件夹或子节。
换句话说,一个星号*在下一个之前结束,两个星号**没有限制。"/"
当 URL 匹配多个模式时,将使用排序来查找最具体的匹配项。
具有较少 URI 变量和通配符计数的模式被认为更具体。例如,/hotels/{hotel}/* 有 1 个 URI 变量和 1 个通配符,被认为比 /hotels/{hotel}/** 更具体,后者是 1 个 URI 变量和 2 个通配符
...
还有一些额外的特殊规则:
- 默认映射模式 /** 不如任何其他模式具体。例如,/api/{a}/{b}/{c}更具体。
- 前缀模式(如 /public/**)不如不包含双通配符的任何其他模式具体。例如,/public/path3/{a}/{b}/{c}更具体。