I have many parameters to pass to the server using JAX-RS.
Is there a way to pass or AarryList with the URL?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You have a few options here.
Option 1: A query parameter with multiple values
You can supply multiple simple values for a single query parameter. For example, your query string might look like:
PUT /path/to/my/resource?param1=value1¶m1=value2¶m1=value3Here the request parameter
param1has three values, and the container will give you access to all three values as an array (See Query string structure).Option 2: Supply complex data in the
PUTbodyIf you need to submit complex data in a
PUTrequest, this is typically done by supplying that content in the request body. Of course, this payload can be xml (and bound via JAXB).Remember the point of the URI is to identify a resource (RFC 3986, 3.4), and if this array of values is data that is needed to identify a resource then the URI is a good place for this. If on the other hand this array of data forms part of the new representation that is being submitted in this
PUTrequest, then it belongs in the request body.Having said that, unless you really do just need an array of simple values, I’d recommend choosing the Option 2. I can’t think of a good reason to use URL-encoded XML in the URL, but I’d be interested to hear more about exactly what this data is.