Art*_*zyn 8 java regex mapping spring javax.ws.rs
我正在尝试将此 Google App Engine Maven 服务器存储库重写为 Spring。
我有 URL 映射问题。Maven 回购服务器标准如下所示:
以斜线结尾的 URL 指向一个文件夹,例如:
http://127.0.0.1/testDir/
http://127.0.0.1/testDir/testDir2/
Run Code Online (Sandbox Code Playgroud)所有其他(末尾没有斜线)指向文件,例如:
http://127.0.0.1/testFile.jar
http://127.0.0.1/testFile.jar.sha1
http://127.0.0.1/testDir/testFile2.pom
http://127.0.0.1/testDir/testFile2.pom.md5
Run Code Online (Sandbox Code Playgroud)使用了@javax.ws.rs.Path
与 Spring 不同的支持正则表达式的注释。
我尝试了一堆组合,例如这样的:
http://127.0.0.1/testDir/
http://127.0.0.1/testDir/testDir2/
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在 Spring 应用程序中以正确的方式做到这一点。
我想避免编写自定义 servlet 调度程序。
Ily*_*nko -1
尝试这个解决方案:
@GetMapping("**/{file:.+?\\..+}")
public String processFile(@PathVariable String file, HttpServletRequest request) {
return "test1 " + file;
}
@GetMapping("**/{dirName:\\w+}")
public String processDirectory(@PathVariable String dirName, HttpServletRequest request) {
String dirPath = request.getRequestURI();
return "test2 " + dirPath;
}
Run Code Online (Sandbox Code Playgroud)
问题中 URI 的结果:
test2 /testDir/
test2 /testDir/testDir2/
test1 testFile.jar
test1 testFile.jar.sha1
test1 testFile2.pom
test1 testFile2.pom.md5
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
284 次 |
最近记录: |