2017-04-06 7 views
0

Maven Jax-RSバージョン1.19を使用していますJAX-RSの相対パス

私は相対的なパスに到達する方法を探しています。例えばので

マイURL:はlocalhost/CSS /すべて

このURLは、CSS、私は次のURLを投稿

用コントローラに行く: はlocalhost /パラメータ/ anotherparam/css/all

また、私は同じコントローラに行きたいです。

私は実際に提案やGoogleの質問に答えることができませんでした。 だからここ(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; 

} 

答えて

0

私はそれがパラメータを取る作るために私のパスを次のように正規表現を含めますか今URL

CSS /すべて

/テスト/ alsotest/CSS /すべて

は、両方のCSSコントローラに行かない:

@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]?!)?

:|:

{(?![\ S \ S])?のparam1:(\ +/W)* ^}

はので、私の完全なパスがあるパラメータで

{のparam1:^ |(\ワット+ /)*([\ S \ S]?!)?} CSS/{ID}

私はこれも起因して、画像や、そのようなのために便利だと思います彼らが持つことができる相対的なパス、このように、呼び出しの場所はm atter、リソースの場所だけ!

私はあなたの考えをこのトピックの上でスタックオーバーフローの人にしたいと思います。

楽しみにしています!