users@jersey.java.net

Re: [Jersey] Example of matrix URIs?

From: Gili <cowwoc_at_bbs.darktech.org>
Date: Tue, 11 Nov 2008 10:26:27 -0800 (PST)

Paul,

Does @Path ignore query arguments? 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?

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.