Este conteúdo não está disponível no idioma selecionado.

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

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2026 Red Hat
Voltar ao topo