2

コードを Jax-Rs (jersey 実装) から Spring MVC エントリ ポイントに移行しようとしています。

jax-rs:

@GET
@Path("{bundle}/bundle{min: (-min)*}.{extension: js|css}")
public Response getBundle(@PathParam("bundle") String bundle, @PathParam("min") String min, @PathParam("extension") String extension)

春の MVC:

@RequestMapping(method = GET, path = "{bundle}/bundle{min:(-min)?}{extension:\\.(js|css)?}")
public void getBundle(@PathVariable String bundle, @PathVariable String min, @PathVariable String extension)

Spring MVC のドキュメントによると、正規表現を使用できます@RequestMapping。構文は jaxrs に似ていますが、エントリポイントが機能しません (404 Not Found)。

エントリポイントの値の例:http://localhost:8080/foo/bundle-min.css

解決策を見つけました@RequestMapping(method = GET, path = "{bundle}/bundle**")が、必要なパラメーター値を取得するには、文字列を解析する必要があります。

4

1 に答える 1

3

あなたの正規表現は問題ないようですが、次のように、これらのキャプチャ グループ非キャプチャ グループに置き換えます。

{bundle}/bundle{min:(?:-min)?}{extension:\.(?:js|css)?}

この正規表現を使用して、 へのリクエストを発行するとfoo/bundle-min.css、 the bundlewould be foo、 the minwould be-minおよび the extensionwould be になります.css

于 2016-02-03T18:10:34.530 に答える