Annotation Type PathParam
@Target({PARAMETER,METHOD,FIELD}) @Retention(RUNTIME) @Documented public @interface PathParam
@Encoded
annotation. A default value can be specified using the @DefaultValue
annotation.
The type of the annotated parameter, field or property must either:
- Be
PathSegment
, the value will be the final segment of the matching part of the path. SeeUriInfo
for a means of retrieving all request path segments. - Be
List<jakarta.ws.rs.core.PathSegment>
, the value will be a list ofPathSegment
corresponding to the path segment(s) that matched the named template parameter. SeeUriInfo
for a means of retrieving all request path segments. - Be a primitive type.
- Have a constructor that accepts a single String argument.
- Have a static method named
valueOf
orfromString
that accepts a single String argument (see, for example,Integer.valueOf(String)
). - Have a registered implementation of
ParamConverterProvider
JAX-RS extension SPI that returns aParamConverter
instance capable of a "from string" conversion for the type.
The injected value corresponds to the latest use (in terms of scope) of the path parameter. E.g. if a class and a
sub-resource method are both annotated with a @Path
containing the same URI template parameter, use
of @PathParam
on a sub-resource method parameter will bind the value matching URI template parameter in the
method's @Path
annotation.
Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles should only use this annotation on resource method parameters.
- Since:
- 1.0
- Author:
- Paul Sandoz, Marc Hadley
- See Also:
Encoded
,DefaultValue
,PathSegment
,UriInfo
-
Element Details
-
value
String valueDefines the name of the URI template parameter whose value will be used to initialize the value of the annotated method parameter, class field or property. SeePath.value()
for a description of the syntax of template parameters.E.g. a class annotated with:
@Path("widgets/{id}")
can have methods annotated whose arguments are annotated with@PathParam("id")
.- Returns:
- resource URI template parameter name.
-