2016-10-25 4 views
0

Ich rufe eine Spring API von AngularJS, wo ich versuche, eine Liste von Modell-Objekt als Parameter übergeben.Übergeben einer Liste von AngularJS zu Spring Controller

data.append('updatedItems', $scope.QuoteList); 
$http.post('updateQuotes', data).success(function(response) { 
    console.log(response); 
}); 

Dann im Frühjahr Controller, ich versuche, wie unten zu erhalten,

@RequestMapping(value = "/updateQuotes", method = RequestMethod.POST) 
public ArrayList<ConsumerPrice> updateQuotes(@RequestBody List<ConsumerPrice> updatedItems, ConsumerPrice consumerPrice) { 
    System.out.println(updatedItems); 
    return null; 
} 

An diesem Punkt erhalte ich eine Ausnahme, wie unten erwähnt. Ich bin nicht sicher, ob dies der richtige Ansatz ist, um eine Liste von Angular zu Spring Controller zu übergeben.

Ich fand nur wenige Anleitung im Internet und versuchte, die Header verbraucht, aber nichts half. Jede Führung wird groß sein

Ich versuchte @PathVariable im Frühjahr Controller bietet aber half nicht

+0

ich einen Vorschlag gefolgt und eine Wrapper-Klasse erstellt, wie unten public class ConsumerPriceWrapper gezeigt { \t List listConsumerPrice; } Dann in der Spring-Controller, fügte ich hinzu, wie unten aber immer noch nicht funktioniert öffentliche ArrayList updateQuotes (@RequestBody ConsumerPriceWrapper aktualisiertEigenschaften, VerbraucherPreis VerbraucherPreis) – CrazyMac

Antwort

0

Schließlich konnte ich dieses Problem zu beheben. Es gibt nichts in der Feder-Controller, aber ich änderte die Art, wie wir die Javascript-Array von Angular Controller übergeben.

Die ersten 2 Zeilen unten ist der Unterschied, wie ich die Liste zu Formdata-Array hinzufügen. Das hat mir geholfen, die Werte in Spring Controller zu holen.

$scope.formData = []; 
$scope.formData = $scope.cQuoteList; 
$http.post('updateQuotes', $scope.formData).success(function(response) { 
     $scope.userQuotes(); 
}); 
Verwandte Themen