반응형
컨트롤러에서 List<>데이터를 받아서 매핑하기 위해서 필요한과정을 정리해본다.
1. List<PersonDto> 데이터를 받기
먼저 controller에서 @RequestBody List<PersonDto>를 받도록 설정한다.
그리고 ajax를 통해서 요청하는 부분에서 다음과 같이 진행한다.
1 2 3 4 5 6 7 | let data = [{'name':'cjung', 'age':30}, {'name':'wedul', 'age':28}]; $.ajax({ url:...., type:..., param: JSON.stringify(data); }); | cs |
2. DTO객체 안에 LIST 변수에 데이터를 매핍 하고자 하는경우
기존에 습관대로 진행을 다음과 같이 먼저 해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // javascript let param = [{ name : 'wedul', age: 1}, {name:'dd', age:2}]; // UserDto private String name; private int age; // UserDataList public UserDataList { List<UserDto> userDatas; } // UserController public Map<String, Object> getUsers(@ModelAttribute UserDataList users); | cs |
Property referenced in indexed property path is neither an array nor a List nor a Map ...
다음과 같은 에러가 발생하고
formData를 확인하면
param[0]["name"] = wedul
param[0]["age"]=1
과 같이 되어있는것을 확인할 수 있다.
이를 해결하기 위해서는 다음과 json 데이터를 만들어서 전송한다.
1 2 3 | var param = {}; param['userDatas[' + index +'].name'] = 'yhkim' ; param['userDatas[' + index +'].age'] = 1; | cs |
반응형
'web > Spring' 카테고리의 다른 글
java.lang.Error: Unresolved compilation problem (0) | 2018.05.27 |
---|---|
Mybatis String을 ParameterType으로 넘길때 (0) | 2018.05.27 |
UriComponents 클래스 (0) | 2016.12.27 |
Mybatis의 동적 SQL (0) | 2016.12.27 |
STS의 github 연동 (0) | 2016.12.21 |