java - 匹配 Spring RequestMapping 中的任何内容

标签 java spring rest spring-mvc request-mapping

在 Spring MVC 休息服务上,我在尝试匹配超出我配置的 RequestMapping 值的任何内容时遇到问题。

例如我有这个:

@RequestMapping(value = "{configKey}/{arguments:.*}", method = RequestMethod.GET)

这表示匹配第二个路径变量之外的任何内容。问题是这例如适用于:

get("/test/document")

虽然这以 404 结束:

get("/test/document/download")

很奇怪 Spring 不能处理这个正则表达式。我实际上尝试了很多解决方案,但都没有奏效。

以前我在 JAX-RS 上有这个配置:

@Path("/{configKey}/{arguments:.*}")

一切都很好,但现在我正在迁移并遇到了这个问题。

有谁知道发生了什么以及如何解决这个问题?

编辑:

添加 {configKey}/** - 不起作用

添加 {configKey}/{arguments}/** 有效,但例如如果我打电话:

get("/test/document/download") 我只得到 test 作为我的配置键和 document 作为参数。在参数中,我希望获得 {configKey} 之外的所有内容。这可以是任何东西,例如它应该在任何情况下都有效:

get("/test/document")
get("/test/document/download")
get("/test/document/download/1")
get("/test/document/download/1/2")
get("/test/whatever/xxx/1/2/etc")

正在使用 JAX-RS 的配置:@Path("/{configKey}/{arguments:.*}")

最佳答案

下面的映射应该适合你

@RequestMapping(value = "{configKey}/**", method = RequestMethod.GET)

此映射称为 default mapping pattern .

关于java - 匹配 Spring RequestMapping 中的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28632790/

相关文章:

java - 带有 IF 函数的 OnClick 监听器

java - 我应该避免在 Spring util 包中使用类吗?

java - @RequestMapping 多个页面

java - Jersey - 如果使用多态性,JSON 响应为空

c# - "Add Service Reference"到底做了什么?

java - 配置 Jersey 时,Spring Boot HandlerInterceptor 没有触发?

java - 如何在 Java 中按值复制数组?

java - 在 Activity 中实现音乐

hibernate - ConstraintViolationException VS DataIntegrityViolationException

java - 在多个键之一上缓存逐出