Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.

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.
Nach oben
Red Hat logoGithubredditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat Dokumentation

Wir helfen Red Hat Benutzern, mit unseren Produkten und Diensten innovativ zu sein und ihre Ziele zu erreichen – mit Inhalten, denen sie vertrauen können. Entdecken Sie unsere neuesten Updates.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

Theme

© 2025 Red Hat