2

我正在尝试将代码从 Jax-Rs(球衣实现)迁移到 Spring MVC 入口点:

贾克斯:

@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 minwill be-min和 the extensionwill be发出请求.css

于 2016-02-03T18:10:34.530 回答