maven 설정
pom.xml 설정
-------------
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.7</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.7</version>
</dependency>
------------
전자정부 프레임웍의 dispatcher-serlvet.xml 설정
dispatcher-serlvet.xml 위치는 설정하기 나름이지만 전자정부프레임웍에서는 WEB-INF/config/egovframework/springmvc/dispatcher-serlvet.xml 있다
----------
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" p:prefixJson="false"/>
------------
org.springframework.web.servlet.view.json.MappingJacksonJsonView 설정시 order는 설정하면 에러 발생한다. 왜 발생하는지는 공부좀 해야 할것 같고 일단은 없으면 안난다.
다른곳에 참고할때는 web.xml도 action 에 대해 json 설정을 하라고 되어 있지만 확장자를 *.json으로 사용하지 않으므로 설정할 필요는 없다.
java 에서는 @ResponseBody 어노테이션을 사용하여 리턴처리를 한다.
-------------------
@Controller
public class UserInfoController {
Logger logger = Logger.getLogger(this.getClass());
.......
@RequestMapping("/userInfo/selectMemberJq.do")
public @ResponseBody UserInfoVO selectMemberJq(@ModelAttribute("userInfoVO") UserInfoVO
userInfoVO) throws Exception{
UserInfoVO resultVO = new UserInfoVO();
resultVO = userInfoService.selectUserInfoData(userInfoVO);
return resultVO;
}
}
--------------------
UserInfoVO 형태의 json을 리터하게 된다 [userId=aa15,userEmail=aa15@aa.aa, ....]
jsp 부분에서는 별다는 처리하지 않는다. jquery를 쓰던 Ajax를 쓰던 처리를 하면된다.
모 외국 사이트를 찾던중 @ResponseBody만 사용하면 되는것 처럼 예제를 써 놓았지만 실제로는 일부 내용이 빠진것 같다. 아니면 내가 잘 몰라서 그럴수도 있음....