1

我正在使用 Spring MVC,并且我有一个映射到 url 的控制器,我们称之为示例。我还有一个名为 show 的方法,它允许我根据 id 查看我的一个示例。

@RequestMapping("/example")


@RequestMapping(value = "/{id}", produces = "text/html")
public String show(@PathVariable("id") String id, Model model) {
    //Do some stuff and return a view
}

问题是 id 是一个 URI,它有正斜杠。(例如,test/case/version/sample 可能是一个 id,因此生成的 url 是 example/test/case/version/sample),因此我的应用程序给了我一个错误“找不到请求的资源”。我无法轻易更改这些 ID 的格式。这是给我的一份清单,我必须与之合作。有没有解决的办法?提前致谢。

4

1 回答 1

1

您可以尝试在 @PathVariable 上使用正则表达式。

就像 Spring Docs 中的这样:

@RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}")
  public void handle(@PathVariable String version, @PathVariable String extension) {
    // ...
  }
}

您只需要考虑一个与您的表达式“example/test/case/version/sample”匹配的正则表达式。

更多信息见本页标题:“带有正则表达式的URI模板模式”:http ://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/mvc.html

于 2013-06-21T21:03:17.330 回答