Path JAX-RS中的相对路径

Path JAX-RS中的相对路径,path,jersey,jax-rs,relative-path,include-path,Path,Jersey,Jax Rs,Relative Path,Include Path,我使用的是Maven Jax RS版本1.19 我在寻找一条通往相对道路的途径 例如: 我的url:localhost/css/all 此url将转到css的控制器 当我发布以下url时: localhost/parameter/anotherparam/css/all 然后我还想去同一个控制器 我在建议或谷歌上找不到适合我问题的答案。 有趣的是,Stackoverflow仍然可以比google更好地搜索自己的网站 所以我的问题是: 如何在Jax-RS中创建一个相对路径,以便无论前面或后面的ur

我使用的是Maven Jax RS版本1.19

我在寻找一条通往相对道路的途径

例如:

我的url:localhost/css/all

此url将转到css的控制器

当我发布以下url时: localhost/parameter/anotherparam/css/all

然后我还想去同一个控制器

我在建议或谷歌上找不到适合我问题的答案。 有趣的是,Stackoverflow仍然可以比google更好地搜索自己的网站

所以我的问题是:

如何在Jax-RS中创建一个相对路径,以便无论前面或后面的url是什么,匹配的路径始终跟随

我的css控制器:

@Path("/css")
@Singleton
public class CssController{

    @GET
    @Path("{id}")
    public Response getCss(@Context HttpServletRequest request, @PathParam("id") String id
       String path = request.getServletContext().getRealPath("/css/"+id+".css");

        File f = new File(path);
        if (f.exists()) {
            return Response.ok(new Viewable(path)).build();
        } 
        return null;

}
@Singleton
@Path("{param1 : ^(?![\\s\\S])|(\\w+/)*?}css/{id}")
public class CssController {

    @GET
    @Produces(MediaType.TEXT_HTML)
    public Response getCss(@Context HttpServletRequest request, @PathParam("id") String id) 
    {
        String path = request.getServletContext().getRealPath("/css/"+id+".css");

        File f = new File(path);
        if (f.exists()) {
            return Response.ok(new Viewable(path)).build();
        } 
    return null;
}

我在我的路径中包含了下面的正则表达式,以使它接受一个参数,而不是现在的url

css/all

/测试/alsotest/css/all

两者都会转到css控制器:

@Path("/css")
@Singleton
public class CssController{

    @GET
    @Path("{id}")
    public Response getCss(@Context HttpServletRequest request, @PathParam("id") String id
       String path = request.getServletContext().getRealPath("/css/"+id+".css");

        File f = new File(path);
        if (f.exists()) {
            return Response.ok(new Viewable(path)).build();
        } 
        return null;

}
@Singleton
@Path("{param1 : ^(?![\\s\\S])|(\\w+/)*?}css/{id}")
public class CssController {

    @GET
    @Produces(MediaType.TEXT_HTML)
    public Response getCss(@Context HttpServletRequest request, @PathParam("id") String id) 
    {
        String path = request.getServletContext().getRealPath("/css/"+id+".css");

        File f = new File(path);
        if (f.exists()) {
            return Response.ok(new Viewable(path)).build();
        } 
    return null;
}
请好好偷

使用正则表达式:

^?![\s\s]|\w+/*

在参数中:

{param1:^?![\s\s]|\w+/*?}

因此,我的完整路径是:

{param1:^?![\s\s]|\w+/*?}css/{id}

我认为这对图像也是有用的,因为它们可以有相对路径,这样,调用的位置就不重要了,只有资源的位置

我想听听大家对这个话题的看法

向前看