Este contenido no está disponible en el idioma seleccionado.
Chapter 4. @PathParam
@PathParam
is a parameter annotation which allows you to map variable URI path fragments into your method call.
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:
Or instead of a public String constructor, we could have a
valueOf
method:
public class ISBN { public static ISBN valueOf(String isbn) {...} }
public class ISBN {
public static ISBN valueOf(String isbn) {...}
}
4.1. Advanced @PathParam and Regular Expressions Copiar enlaceEnlace copiado en el portapapeles!
Copiar enlaceEnlace copiado en el portapapeles!
There are several more complicated uses of
@PathParam
s.
You are allowed to specify one or more
@PathParam
s embedded in one URI segment. For example:
1. @Path("/aaa{param}bbb") 2. @Path("/{name}-{zip}") 3. @Path("/foo{name}-{zip}bar")
1. @Path("/aaa{param}bbb")
2. @Path("/{name}-{zip}")
3. @Path("/foo{name}-{zip}bar")
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) {...}
@GET
@Path("/aaa{param:b+}/{many:.*}/stuff")
public String getIt(@PathParam("param") String bs, @PathParam("many") String many) {...}
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
.