On Nov 11, 2008, at 7:26 PM, Gili wrote:
>
> Paul,
>
> Does @Path ignore query arguments?
Yes. It only matches the path component of the URI (minus any matrix
parameters).
> If I want to parse for:
>
> http://example.com/images/1;2;5?select=random
>
> Can I use the following?
>
> @Path("{id}?select=random")
>
> or would I be forced to use a single method and fork execution
> myself based
> on the query arguments?
>
The latter.
Paul.
> Thanks,
> Gili
>
>
> Paul Sandoz wrote:
>>
>>
>> On Nov 10, 2008, at 10:40 PM, Gili wrote:
>>
>>>
>>>
>>> Paul Sandoz wrote:
>>>>
>>>> A better use would be:
>>>>
>>>> http://example.com/images;1;2;5/tags
>>>>
>>>> as then the matrix parameters are associated with a named path
>>>> segment. Matrix parameters are ignored when path matching. The best
>>>> way to think about them is as query parameters scoped to a path
>>>> segment.
>>>>
>>>
>>> I don't understand how the above would work. Are you saying that
>>> "images"
>>> would have 3 matrix parameters: 1, 2 and 5?
>>
>> Yes, specifically there are three matrix parameter names, each of
>> which has no value.
>>
>>
>>> Paul Sandoz wrote:
>>
>>>>
>>>> If you are using the path segment matching approach you could do:
>>>>
>>>> @GET_at_Path("images/{id: <regex for digits and commas>}/tags")
>>>> public ... get(@PathParam("id") ImageList images) { ... }
>>>>
>>>> and the class ImageList has a string constructor that parses the
>>>> comma
>>>> separated list of names (see the Sparklines sample [1]).
>>>>
>>>
>>> Okay, I just wanted to get back a List<Integer>. I guess I could
>>> code this
>>> up myself.
>>
>> You could only do that with @MatrixParam (or @QueryParam) if you have
>> one or more matrix parameters with the same name. You can use the
>> following class for any @*Param value:
>>
>> public class IntegerList extends ArrayList<Integer> {
>> public IntegerList(String s) {
>> super();
>>
>> for (String v : s.split(",")) {
>> try {
>> add(Integer.parseInt(v.trim()));
>> } catch (Exception ex) {
>> throw new WebApplicationException(400);
>> }
>> }
>> if (isEmpty())
>> throw new WebApplicationException(400);
>> }
>> }
>>
>> Paul.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>
>>
>>
>
> --
> View this message in context: http://n2.nabble.com/Example-of-matrix-URIs--tp1482069p1486281.html
> Sent from the Jersey mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>