[ eGovFrame ] Jackson 설정
[ Jackson 설정 ]
: @ResponseBody 를 사용하지 않고, xml 설정 및 jsonView 사용 방식
1. pom.xml
- jackson core / jackson data-bind 설치 필요 ( JDK 와 버전 일치 필요 8-2.4.3 / 11-2.9.9 )
<!-- 잭슨 -->
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.9</version> </dependency>
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.9</version> </dependency>
2. dispatcher-servlet.xml 빈 등록 필요
<!-- egov - AJAX -->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="0"/> </bean>
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"> <property name="contentType" value="application/json;charset=UTF-8"> </property> </bean>
3. Controller
@RequestMapping(value="/oneboard.do", method=RequestMethod.POST, produces= {"application/json; charset=utf-8"}) public ModelAndView oneboardajax(long oneboardId) throws Exception {
BoardVO oneBoard = boardService.getOneBoard(oneboardId);
ModelAndView mav = new ModelAndView("jsonView");
mav.addObject("oneBoard", oneBoard);
return mav;
}
4. JSP AJAX
- res 가 ModelAndView 값이므로 key 값으로 한번 꺼내서 써야함
- success: function(res){ let boardTitle = res.oneBoard.title; let boardContents = res.oneBoard.contents;