我有像这样的uriTemplate
/{repository}/{id}/action/{methodName}/**
org.springframework.data.rest.webmvc.util.UriUtils使用org.springframework.web.util.UriTemplate在findMappingVariable方法中获取变量
UriTemplate.Parser构建此值的模式
\Q/\E(.*)\Q/\E(.*)\Q/action/\E(.*)\Q/**\E
为什么不这样呢?
\\Q/\\E(.*)\\Q/\\E(.*)\\Q/action/\\E(.*)\\Q/\\E(.*)\\Q\\E
由于这个功能,我在那里有空地图
Map<String, String> variables = new org.springframework.web.util.UriTemplate(mapping).match(lookupPath);
用于此lookupPath
/educationDistrict/308/action/resetAddressesForYear/1
答案 0 :(得分:0)
我认为URI模板中不允许使用**
段。在这种情况下,如果**
部分匹配了多个段,那么在获取路径变量时会有什么期望?
请注意,如果您尝试构建模板以进行REST调用,则应检查RestTemplate和UriComponentsBuilder(see reference doc)。
答案 1 :(得分:0)
如果您想拥有一个与正则表达式匹配的UriTEmplate
,则可以使用它{:}
例如,
/test-service/test-endpoint/countries/1/cities/2
/test-service/test-endpoint/people/5/adults/6
可以分别与UriTemplate
匹配。
/test-service/test-endpoint/countries/{id}/cities/{id}
/test-service/test-endpoint/people/{id}/adults/{id}
如果您要匹配两者
/test-service/test-endpoint/{:.*}
这里是链接
URI template needs to match with variable value that is a set of folders