| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바
- 자바스크립트
- javascript
- Web
- effective
- kibana
- JPA
- RCP
- boot
- 맛집
- elasticsearch
- Git
- MySQL
- 후기
- Spring Boot
- error
- 스프링
- 엘라스틱서치
- Spring
- 백준
- jface
- 이펙티브
- nodejs
- 인터페이스
- java
- 알고리즘
- 리뷰
- node
- 독후감
- java8
Archives
- Today
- Total
wedul
spring에서 List 또는 Array 데이터를 Controller에서 받기 본문
반응형
컨트롤러에서 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 클래스 (1) | 2016.12.27 |
| Mybatis의 동적 SQL (0) | 2016.12.27 |
| STS의 github 연동 (0) | 2016.12.21 |
