전자정부프레임워크 샘플코드 기준으로, Ajax를 사용한 통신 예제.
POM.xml에 의존성 정보를 추가하여 Maven으로 빌드한다. 또는 라이브러리를 추가한다.
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"]}