반응형
[오류노트] hashmap/jackson lib를 이용한 ajax응답
spring mvc를 이용하여 modal을 클릭하면 조회수를 올리는 작업을 하던 중이었다.
modal을 클릭하면 조회수가 올라가야하는데 DB의 데이터는 올라갔지만 화면에 뿌려주는 작업은 새로고침을 안하면 바뀌지 않았다.
-문제점?
조회수 return 을 int type으로 해서 ajax에서 값을 받으려 했기 때문이었다.
따라서, 응답받는 데이터 타입을 바꿔야한다.
[해결방법]
1. jsp페이지
ajax통신을 get method로 하고 data를 받는 모습
1 2 3 4 5 6 7 8 9 10 11 | $.ajax({ url:"${pageContext.request.contextPath}/pages/notice/hitNum.do", method:"get", data:{num:num}, success:function(data){ $(".hitNum").text(data.hitnum); }, error:function(err){ console.log(err); } }); | cs |
2. controller페이지
- dao와 service를 통해 return된 int type의 hitnum을 변수에 넣어준 뒤
- map형태로 넣어준다.
- @ResponseBody를 넣어준다. [참고 : http://aljjabaegi.tistory.com/148]
- jackson라이브러리를 이용한다. (3번 참고)
- map형태로 넣어주면 {"hitnum", 99} 이러한 형태로 전달되고 jackson라이브러리가 형태를 json형태로 자동 변형해준다.
1 2 3 4 5 6 7 8 | @RequestMapping("/pages/notice/hitNum") @ResponseBody public Map<String,Object> NoticehitNum(@RequestParam int num) { int hitnum=noticeService.hitNum(num); Map<String, Object> map=new HashMap<>(); map.put("hitnum", hitnum); return map; // {"hitnum", 99} } | cs |
3. pom.xml
- jackson library 를 통해 map형태의 데이터가 json형태로 자동 변환 된다.
1 2 3 4 5 6 | <!-- json, xml 응답을 편하게 할수 있도록 도와 주는 라이브러리 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.0</version> </dependency> | cs |
반응형
'개발노트' 카테고리의 다른 글
[개발노트] jqeury head에 넣기 (0) | 2017.09.08 |
---|---|
[개발노트] jquery 이용한 click시 null check 하기 (0) | 2017.09.08 |
[오류노트] BeanCreationException (0) | 2017.09.04 |
[개발노트] img src 추출 정규표현식 (0) | 2017.08.24 |
[HTML/CSS/Javascript] 간단한 게임 만들기 (0) | 2017.04.12 |
댓글