이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 4. @PathParam


@PathParam is a parameter annotation which allows you to map variable URI path fragments into your method call.
@Path("/library")
public class Library {

   @GET
   @Path("/book/{isbn}")
   public String getBook(@PathParam("isbn") String id) {
      // search my database and get a string representation and return it
   }
}
Copy to Clipboard Toggle word wrap
This lets you embed variable identification in the URIs of your resources. The previous example shows an isbn URI parameter passing information about a particular book we want to access. You can inject into any primitive parameter type, a String, any Java object that takes a String parameter, or a static valueOf method that takes a String parameter. For example, if we wanted isbn to be a real object, we could write:
   @GET
   @Path("/book/{isbn}")
   public String getBook(@PathParam("isbn") ISBN id) {...}


   public class ISBN {
      public ISBN(String str) {...}
   }

Copy to Clipboard Toggle word wrap
Or instead of a public String constructor, we could have a valueOf method:
  public class ISBN {
     
     public static ISBN valueOf(String isbn) {...}
  }
Copy to Clipboard Toggle word wrap

4.1. Advanced @PathParam and Regular Expressions

There are several more complicated uses of @PathParams.
You are allowed to specify one or more @PathParams embedded in one URI segment. For example:
1. @Path("/aaa{param}bbb")
2. @Path("/{name}-{zip}")
3. @Path("/foo{name}-{zip}bar")
Copy to Clipboard Toggle word wrap
So, a URI of the form "/aaa111bbb" would match the first specified parameter. "/bill-02115" would match the second, and "foobill-02115bar" would match the third.
In Section 3.1, “@Path and regular expression mappings”, we mentioned that regular expressions can be used within @Path values, like so:
@GET
@Path("/aaa{param:b+}/{many:.*}/stuff")
public String getIt(@PathParam("param") String bs, @PathParam("many") String many) {...}

Copy to Clipboard Toggle word wrap
With the @Path defined here, the request GET /aaabb/some/stuff would have a "param" value of bb, and a "many" value of some. The request GET /aaab/a/lot/of/stuff would have a "param" value of b, and a "many" value of a/lot/of.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat