1

私はSpring MVCを使用しており、URLにマップされたコントローラーを持っています。これを例と呼びましょう。ID に基づいて例の 1 つを表示できる show というメソッドもあります。

@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 に答える