본문 바로가기

SPRING

AJAX: Spring + jsonView

전자정부프레임워크 샘플코드 기준으로, Ajax를 사용한 통신 예제.

POM.xml에 의존성 정보를 추가하여 Maven으로 빌드한다. 또는 라이브러리를 추가한다.

https://sourceforge.net/projects/json-lib/files/


POM.xml

<dependency>
	<groupid>net.sf.json-lib</groupid>
	<artifactid>json-lib-ext-spring</artifactid>
	<version>1.0.2</version>
</dependency>
<dependency>
	<groupid>org.codehaus.jackson</groupid>
	<artifactid>jackson-mapper-asl</artifactid>
	<version>1.6.4</version>
</dependency>


Dispatcher-Servlet.xml

<bean id="jsonView" class="net.sf.json.spring.web.servlet.view.JsonView"> <property name="contentType" value="application/json;charset=UTF-8" /> </bean> <bean id="beanNameResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver" p:order="0" />

 json객체로 리턴된 한글데이터가 view에서 올바르게 보이지 않는 경우, jsonView bean에 encoding property를 추가해준다.



@Controller

@RequestMapping(value = "/doLinkAjax.do")
public ModelAndView autoList(HttpServletRequest request, ModelMap model) throws Exception {
	System.out.println("doLinkAjax.do Called!!");
	String input = request.getParameter("input");
	List<string> resultList = new ArrayList<string>();

	resultList.add("Javascript");
	resultList.add("Python");
	resultList.add("C++");
	resultList.add("Delphi");

	Map resultMap = new HashMap();
	resultMap.put("list", resultList);

	ModelAndView mv = new ModelAndView("jsonView", resultMap);
	return mv;
}


RESULT ( http://localhost:8080/sample/doLinkAjax.do )

{"list":["Javascript","Python","C++","Delphi"]}