web-dev-qa-db-ja.com

スプリングコントローラーの正規表現

文字e、数字のパターンに一致する場合にのみ使用される要求フィルターを作成しようとしています。しかし、私はそれを動作させることができないようです。正規表現で何かを試すたびに、400個のエラーが発生し続けます。

次のコードを使用するだけで「機能します」が、必要のない番号のないマッピングもキャプチャします。

@RequestMapping(value = "e{number}",
            method = RequestMethod.GET)

次の組み合わせを試しました。

@RequestMapping(value = "e{number}",
            params = "number:\\d+",
            method = RequestMethod.GET)

@RequestMapping(value = "e{number:\d+}",
            method = RequestMethod.GET)

@RequestMapping(value = "/e{^\\+?\\d+\$}",
            method = RequestMethod.GET)

@RequestMapping(value = "/{^\\e+?\\d+\$}",
            method = RequestMethod.GET)
23
zmanc

ドキュメント によると、{varName:regex}のようなものを使用する必要があります。例もあります:

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

以下を使用する必要があります。

 @RequestMapping("/e{number:\\d+})

\d数字指定子の前の「エスケープされたスラッシュ」に注意してください。

2
Koen van Dijk