2016-07-07 6 views
0

erhalten Ich rufe Feder mvc Controller-Methode mit jquery Ajax.Wie man Array in Jquery Ajax Anruf übergeben und wie man es von Feder mvc Controller

Jquery Ajax-Aufruf:

var filters = {KPI : visual, partnerName: params['partnerName'], itemQualifier: getItemQualifier(), currency : getCurrency(), sellSide: getSellSide()}; 

$.ajax({                  
type: "POST", 
url: "/reports/savefilters", 
data: filters, 
success: function(response){ 
    alert('success: ' + response); 
}, 
error: function(e){ 
    alert('Error: ' + e.message); 
} 
}); 

Spring MVC-Code:

@RequestMapping(value="/savefilters",method=RequestMethod.POST) 
public void saveFilters(@RequestParam("KPI") String KPI, @RequestParam("partnerName") String partnerName, 
    @RequestParam("itemQualifier") String itemQualifier, @RequestParam("currency") String currency, 
    @RequestParam("sellSide") String sellSide){ 
      System.out.println("saveFilters"); 
} 

Seine Arbeit gut ohne "@RequestParam (" Partnername ") String Partnername" Parameter.

Hier sind "params ['partnername']" Werte wie abc, def, ghi.

Sende ich Daten nicht richtig an den Controller ??? Irgendwelche Vorschläge, wie es funktioniert ???. Dank ...

Antwort

1

ändern

@RequestParam("partnerName") String partnerName 

zu

@RequestParam(value = "partnerName[]", required = false) String[] partnerName 
+0

Es funktioniert gut, wenn Partnername Array nicht leer ist. Wenn das Array leer ist, wird der Fehler "String [] parameter 'partnername []' ist nicht vorhanden" angezeigt. – Hemachandra

+0

@Hemachandra Verwenden Sie das Attribut 'required' in' @ RequestParam', überprüfen Sie bitte meine aktualisierte Antwort. – Blank

+0

Danke @ 10086. Es funktioniert wie erwartet mit diesen Änderungen – Hemachandra

Verwandte Themen