Wysłanie tablicy do Rest Controllera

0

Witam,
Czy ktoś mógł by mi napisać jak wysłać z poziomu angularJS lub Postman tablicę do Springowego kontrollera ? Robię to w taki sposób:

@PostMapping(value = "/add")
    public HttpEntity addBudget(@RequestBody List<Dto> dto){
        dto.forEach(System.out::println);
        return (HttpEntity) ResponseEntity.ok();
    }
$http({
            method: 'POST',
            url: serverIp + userPath + '/add',
            data: { 
                dto : $scope.dto
            }
        }).then(function successCallback(success) {
                ...
        }, function errorCallback(error) {
            ...
        });

Z góry dzięki za odpowiedź.

1

Po pierwsze, wysyłaj po stronie JavaScriptu tablicę, a nie {dto:{...}} - co ma oznaczać ten atrybut dto w JSON-ie?

Po drugie, czy kompilator przypadkiem nie wymaże Ci tu informacji o typach generycznych? Spróbuj zrobić sobie coś takiego i użyć tego jako typu argumentu:

public class DtoList extends ArrayList<Dto> {
   // ...
}
1

Musisz w Body wysłać zserializowaną listę obiektów po prostu, np:

[
{"field":"value"},
{"field":"value"]
]
0

zyxist: dto to tablica w obiektow, w tym przypadku {"name":"name", "value":"24.24", "type":"MINUS"}. Problem wydaje się być po stronie angulara ponieważ w Postmanie udało mi się poprawnie przesłać.
bames próbowałem tak i też nie działa:

[
{"name":"name", "value":"24.24", "type":"MINUS"}, 
{"name":"name", "value":"24.24", "type":"MINUS"}
]
1

A to Dto jest JavaBeanem?

1

Nie, Ty nie wysyłasz tablicy obiektów. Ty wysyłasz jeden obiekt z kluczem dto, w którym jest tablica obiektów i pytam, dlaczego właśnie tak :). Wskazuję Ci właśnie najbardziej prawdopodobne miejsce problemu :).

0

zyxist właśnie tutaj jest błąd. Wielkie dzięki Panowie za poświęcony czas :)
Temat do zamknięcia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1