web-dev-qa-db-fra.com

comment envoyer un tableau dans une requête url

Mon exigence est la suivante:

Je veux donner le nom de l'acteur, la date de début, la date de fin et obtenir tous les films qu'il a réalisés durant cette période.

Pour cette raison, ma demande de service est comme ça.

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

Maintenant, je veux l'améliorer. Je veux donner une date de début, une date de fin et plus d'un nom d'acteur et je veux voir tous les films d'acteurs de cette période.

Je ne suis pas sûr de savoir comment mon URL devrait chercher à soutenir une telle chose.

J'écris un service Web basé sur Java) en utilisant spring.

Le code ci-dessous est pour soutenir un acteur

   @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.
 }

Une solution à laquelle je pense consiste à utiliser un symbole% pour séparer les noms d'acteurs. Par exemple:

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

Maintenant, dans le contrôleur, je vais analyser la chaîne de noms avec% et récupérer tous les noms d'acteurs.

Est-ce une bonne façon de faire ou existe-t-il une approche standard?

Merci

45
javaMan

Séparer par des virgules:

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

ou:

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

ou:

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

Dans les deux cas, votre signature de méthode doit être:

@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.
 }
109
Brian Dilley