how to send an array in url request

202,764

Separate with commas:

http://localhost:8080/MovieDB/GetJson?name=Actor1,Actor2,Actor3&startDate=20120101&endDate=20120505

or:

http://localhost:8080/MovieDB/GetJson?name=Actor1&name=Actor2&name=Actor3&startDate=20120101&endDate=20120505

or:

http://localhost:8080/MovieDB/GetJson?name[0]=Actor1&name[1]=Actor2&name[2]=Actor3&startDate=20120101&endDate=20120505

Either way, your method signature needs to be:

@RequestMapping(value = "/GetJson", method = RequestMethod.GET) 
public void getJson(@RequestParam("name") String[] ticker, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
   //code to get results from db for those params.
 }
Share:
202,764
javaMan
Author by

javaMan

I am a java developer. I have experience with java based spring configurations. I love front end. I play with jquery, javascript, html 5. i love creating web apps.

Updated on July 05, 2022

Comments

  • javaMan
    javaMan almost 2 years

    My requirement is as follows:

    I want to give actor name, start date, end date and get all the films he acted in that period.

    For that reason, my service request is like this.

      http://localhost:8080/MovieDB/GetJson?name=Actor&startDate=20120101&endDate=20120505
    

    Now, i want to improve it. I want to give a start date, end date and more than one actor name and want to see all those actors movies in that period.

    I am not sure how should my url look to support such thing.

    I am writing a java based web service using spring.

    Below code is to support one actor

       @RequestMapping(value = "/GetJson", method = RequestMethod.GET) 
        public void getJson(@RequestParam("name") String ticker, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
       //code to get results from db for those params.
     }
    

    One solution i am thinking is using a % symbol to seperate actor names. For example:

     http://localhost:8080/MovieDB/GetJson?name=Actor1%Actor2%Actor3&startDate=20120101&endDate=20120505
    

    Now, in the controller i will parse the name string with % and get back all actors names.

    Is this a good way to do this or is there a standard approach?

    Thanks

  • Kishan Bheemajiyani
    Kishan Bheemajiyani about 10 years
    but in case if u having 1000 size of array then u can not write this all the thing separate na.. ??
  • TPPZ
    TPPZ almost 10 years
    Is there a "Spring documentation" link you could point to regarding those 3 different ways of writing the URLs?
  • Gelin Luo
    Gelin Luo almost 8 years
    approach one (separate with commas) is different from the other two. Tried on a Java app (server side backed by undertow), if you pass name=Actor1,Actor2,Actor3, the server will not get an array for your name parameter, instead you get one single string: Actor1,Actor2,Actor3 param. The other two is different, they all give name parameter with an array of values: ["Actor1", "Actor2", "Actor3"]. According to stackoverflow.com/questions/6243051/…, many other frameworks also treat approach one as a single string query param instead of array
  • Qussay Najjar
    Qussay Najjar almost 6 years
    with comma separated values you can receive them as a List<String> request param