Back to the eGovFrame

[ eGovFrame ] Jackson 설정

Backcoder 2023. 1. 11. 23:07

[ 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;