使用正则表达式从 JAX-RS @Path 迁移到 Spring MVC @RequestMapping
Migrate from JAX-RS @Path to Spring MVC @RequestMapping using regex
我正在尝试将代码从 Jax-Rs(球衣实现)迁移到 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)
Spring 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 documentation,我可以对 @RequestMapping
使用正则表达式。语法类似于 jaxrs,但入口点不起作用(404 未找到)。
入口点的值示例:http://localhost:8080/foo/bundle-min.css
我找到了 @RequestMapping(method = GET, path = "{bundle}/bundle**")
的解决方案,但我必须解析字符串以捕获我需要的参数值。
您的正则表达式似乎没问题,但请将那些 捕获组 替换为 非捕获组 ,如下所示:
{bundle}/bundle{min:(?:-min)?}{extension:\.(?:js|css)?}
使用此正则表达式,如果您向 foo/bundle-min.css
发出请求,bundle
将是 foo
,min
将是 -min
,而extension
将是 .css
.
我正在尝试将代码从 Jax-Rs(球衣实现)迁移到 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)
Spring 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 documentation,我可以对 @RequestMapping
使用正则表达式。语法类似于 jaxrs,但入口点不起作用(404 未找到)。
入口点的值示例:http://localhost:8080/foo/bundle-min.css
我找到了 @RequestMapping(method = GET, path = "{bundle}/bundle**")
的解决方案,但我必须解析字符串以捕获我需要的参数值。
您的正则表达式似乎没问题,但请将那些 捕获组 替换为 非捕获组 ,如下所示:
{bundle}/bundle{min:(?:-min)?}{extension:\.(?:js|css)?}
使用此正则表达式,如果您向 foo/bundle-min.css
发出请求,bundle
将是 foo
,min
将是 -min
,而extension
将是 .css
.