Question

Je fais un simple « get » dans JBoss/Spring.Je veux que le client me transmette un tableau d'entiers dans l'URL.Comment puis-je configurer cela sur le serveur ?Et montrez-vous si le client doit envoyer le message ?

C'est ce que j'ai en ce moment.

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds)
{
     //What do I do??
     return "Dummy"; 
}

Sur le client, j'aimerais transmettre quelque chose comme

http://localhost:8080/public/test/[1,3,4,50]

Lorsque j'ai fait cela, j'obtiens une erreur :

java.lang.IllegalStateException :Impossible de trouver @PathVariable [firstNameIds] dans @RequestMapping

Était-ce utile?

La solution

GET http://localhost:8080/public/test/1,2,3,4

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String[] firstNameIds)
{
    // firstNameIds: [1,2,3,4]
    return "Dummy"; 
}

(Testé avec le ressort MVC 4.0.1)

Autres conseils

Vous devriez faire quelque chose comme ceci :

Appel:

GET http://localhost:8080/public/test/1,2,3,4

Votre contrôleur :

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds) {
     //Example: pring your params
     for(Integer param : firstNameIds) {
        System.out.println("id: " + param);
     }
     return "Dummy";
}

Si vous voulez utiliser des crochets - []

DELETE http://localhost:8080/public/test/[1,2,3,4]

@RequestMapping(value="/test/[{firstNameIds}]", method=RequestMethod.DELETE)
@ResponseBody
public String test(@PathVariable String[] firstNameIds)
{
    // firstNameIds: [1,2,3,4]
    return "Dummy"; 
}

(Testé avec le ressort MVC 4.1.1)

pourrait faire @pathvariable String IDS, puis analyser la chaîne.

Alors quelque chose comme:

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String firstNameIds)
{
     String[] ids = firstNameIds.split(",");
     return "Dummy"; 
}

vous passeriez:

http://localhost:8080/public/test/1,3,4,50

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top