So senden Sie ein array mit Feder RestTemplate?

Wie versende ich eine array-parameter mit Feder RestTemplate?

Dies ist die server-seitige Implementierung:

@RequestMapping(value = "/train", method = RequestMethod.GET)
@ResponseBody
public TrainResponse train(Locale locale, Model model, HttpServletRequest request, 
    @RequestParam String category,
    @RequestParam(required = false, value = "positiveDocId[]") String[] positiveDocId,
    @RequestParam(required = false, value = "negativeDocId[]") String[] negativeDocId) 
{
    ...
}

Dies ist, was ich versucht habe:

Map<String, Object> map = new HashMap<String, Object>();
map.put("category", parameters.getName());
map.put("positiveDocId[]", positiveDocs); //positiveDocs is String array
map.put("negativeDocId[]", negativeDocs); //negativeDocs is String array
TrainResponse response = restTemplate.getForObject("http://localhost:8080/admin/train?category={category}&positiveDocId[]={positiveDocId[]}&negativeDocId[]={negativeDocId[]}", TrainResponse.class, map);

Im folgenden wird der aktuelle request-URL, die offensichtlich falsch:

http://localhost:8080/admin/train?category=spam&positiveDocId%5B%5D=%5BLjava.lang.String;@4df2868&negativeDocId%5B%5D=%5BLjava.lang.String;@56d5c657`

Habe versucht zu suchen aber konnte keine Lösung finden. Alle Hinweise wären sehr willkommen.

InformationsquelleAutor Stanley | 2013-01-04

Schreibe einen Kommentar