티스토리 뷰
Spring작업 시 웹 페이지에서 서버로 혹은 서버에서 웹 페이지로 데이터를 보내는 경우
페이지 이동이나 ajax 를 사용한 데이터 이동 시 데이터를 쓰기 편한 형태로 변환할 필요가 있다.
HttpServletRequest 의 getParameterMap() 으로 만들어지는 map의 값이 String형태의 Array이다.
위 형태의 데이터로 ibatis 에서 map을 사용하면 제대로 동작하지 않으므로 Parameter의 값을 HashMap<String, Object>형태로 변환하고자 한다.
우선 Controller로 받아온 HttpServletRequest를 가져온다.
Service.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @Autowired private Mapper mapper; public List<Map<String, Object>> getInfoList(HttpServletRequest request) throws Exception { HashMap<String, Object> map = convertMap(request); return mapper.getInfo(map); } public Map<String, Object> getInfo(HttpServletRequest request) throws Exception { HashMap<String, Object> map = convertMap(request); return mapper.getInfo(map); } | cs |
convertMap 함수를 이용해 웹페이지에서 가져온 HttpServletRequest 에 데이터를 HashMap<String, Object>으로 수정해서 반환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public HashMap<String, Object> convertMap(HttpServletRequest request) { HashMap<String, Object> hmap = new HashMap<String, Object>(); String key; Enumeration<?> enum = request.getParameterNames(); while (enum.hasMoreElements()) { key = (String) enum.nextElement(); if (request.getParameterValues(key).length > 1) { hmap.put(key, request.getParameterValues(key)); } else { hmap.put(key, request.getParameter(key)); } } return hmap; } | cs |
Mapper의 return 값 selectList 혹은 selectOne 에 따라 List 형태로 반환할 수 있다.
Mapper.java
1 2 3 | List<Map<String, Object>> getInfoList(Map<String, Object> param); Map<String, Object> getInfo(Map<String, Object> param); | cs |
변환된 HashMap은 ibatis를 사용한 Mapper.xml에 parameterType="hmap" 으로 사용 가능하다.
Mapper.xml
1 2 3 4 5 | <select id="getInfo" parameterType="hmap" resultType="hmap"> SELECT NAME, AGE, TEL, ADDR FROM INFO_TB WHERE NAME LIKE '%' || #{name} || '%' </select> | cs |
ㅇ
'IT 작업 > Spring' 카테고리의 다른 글
[Spring ] Service와 dao의 차이 (0) | 2018.10.10 |
---|
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- image resizing
- 변수
- Spring
- Request
- CSS
- HashMap
- 동작원리
- HTML
- 이미지 리사이징
- Service
- 호이스팅
- 자료형
- var
- Calendar
- JavaScript
- HttpServletRequest
- script
- 달력
- dao
- es6
- jQuery
- git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함