Path JAX-RS中的相对路径
我使用的是Maven Jax RS版本1.19 我在寻找一条通往相对道路的途径 例如: 我的url:localhost/css/all 此url将转到css的控制器 当我发布以下url时: localhost/parameter/anotherparam/css/all 然后我还想去同一个控制器 我在建议或谷歌上找不到适合我问题的答案。 有趣的是,Stackoverflow仍然可以比google更好地搜索自己的网站 所以我的问题是: 如何在Jax-RS中创建一个相对路径,以便无论前面或后面的url是什么,匹配的路径始终跟随 我的css控制器: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
@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}
我认为这对图像也是有用的,因为它们可以有相对路径,这样,调用的位置就不重要了,只有资源的位置
我想听听大家对这个话题的看法
向前看