티스토리 뷰
리스트를 전달하기 위해 검색을 많이 해봣지만
대부분 리스트타입을 리스트 타입으로 넘기거나, json을 json으로 넘기는 경우가 많았다.
내 경우 리스트와 함게 string타입의 다른 파라미터도 같이 넘겨 db를 타는 경우가 많기 때문에
파라미터타입을 map으로 주로 사용을 한다.
아래의 경우 파라미터 타입을 HashMap으로 사용하는 경우이다.
[script]
리스트를 json타입으로 변환해준 후 ajax를 통해 controller로 전달
var dataParam = {list:JSON.stringify($scope.lists), param1:'param1', param2:'param2'};
$.ajax({
type : 'POST',
dataType : 'json',
data: dataParam,
url : url,
success : function(returnData) {
},error:function(e){
};
}
});
key : list, value = json list
key : param1 , value ="param1"
key : param2, value ="param2"
와 같은 map타입의 파라미터 이다.
[java]
//import com.fasterxml.jackson.databind.ObjectMapper;
public Map<String, Object> jsonList(@RequestParam Map<String, Object> parameters){
String json = parameters.get("list").toString();
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> list = mapper.readValue(json, new TypeReference<ArrayList<Map<String, Object>>>(){});
return null;
}
HashMap타입의 parameter에서 key가 list인 값을 string형태로 가져온다.
여기서 String 형태의 json값을 arrayList로 풀어가는 과정이다.
결과적으로 List<> list 에는 json을 arrayList로 변환한 값이 들어가 있다.
이 리스트를 DTO로 받고싶은 경우
List<DTO> list = mapper.readValue(json, new TypeReference<ArrayList<DTO>>(){});
로 바꾸어 사용하면 된다.
-------- 2018-09-12 내용추가 ----------------------------------------
위와 같은 내용을 알려주던 중 질문 하나를 받았다.
Map의 Object타입을 이용하는 경우 xml에서 int와 string을 구분할 수 있을까?
xml에서 타입 지정이 가능하다.
직접 해본 바로는
int타입은 #{key, jdbcType=INTEGER} 로 지정해주면 해당 값이 int형으로 넘어간다.
String타입은 같은 방법으로 지정해도 되지만 따로 지정하지 않아도 제대로 값이 들어갔다.
'spring memo' 카테고리의 다른 글
ajax로 넘겨받은 데이터의 key 찾기 (0) | 2018.07.20 |
---|---|
jsp 엑셀 컨트롤 (0) | 2018.07.18 |
html tag ctrl (0) | 2018.06.12 |
xml query (0) | 2018.06.04 |
input ctrl (0) | 2018.05.25 |
- Total
- Today
- Yesterday
- date
- 리액트
- javascript
- JSON
- React
- ajax
- list
- java
- Progressbar
- value
- script
- Props
- input
- hashmap
- JSX
- 클래스형
- JSP
- html
- 스프링
- Spring
- webpack
- module
- angular
- 함수형
- paging
- typescript
- datePicker
- Redux
- hooks
- nodeJS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |