springMVC 支援返回json串 配置檔案
現在多數的應用為了提高互動性多使用非同步重新整理,即在不重新整理整個頁面的情況下,只重新整理區域性,區域性重新整理用得最多就是ajax,ajax和後臺進行互動的資料格式使用的最多的是JSON,這裡簡單描述,在springmvc的開發架構下如何返回JSON串。這裡使用兩種方式進行配置,一:fastjson;二、jackson
一、fastjson
fastson是阿里巴巴開源的一個json轉化jar包,在springmvc的架構下藥使用這種方式,需引入其jar包:fastjson-1.1.34.jar,這裡使用的是1.1.34的版本,這裡的環境是已經搭建好springmvc的開發環境,下面是在springmvc的配置檔案中配置fastjson的配置檔案,
1 2 3 4 5 6 7 8 9 10 11 |
8 </value>
|
配置了一個bean,指定了其class的屬性,且配置了屬性;我們要向前臺返回json,需要使用springmvc的註解@ResponseBody,所以在配置檔案中需要開啟mvc的註解驅動,
1 2 |
等註解-->
|
然後我們看Controller是如何寫的
@RequestMapping("my2/{courseId}/{name}") @ResponseBody public Map<String,String> method2(@PathVariable("courseId") String courseId,@PathVariable("name") String name){ HashMap<String,String> map=new HashMap<String,String>(); map.put("name", "劉曉燕"); map.put("sex", "女"); map.put("age", "23") return map; }
此方法在Controller中,在方法上添加了@ResponseBody註解,方法的返回值是一個Map,通過這種方式就你可以向前端返回JSON物件,為什麼我們返回的一個Map物件到了前臺就是JSON物件了,因為我們在配置檔案中配置了基於fastjson的bean(bean的id為fastjson),fastjson就可以為自動把map物件轉化為json物件返回到前臺。
前臺的ajax請求這裡不再給出,和一般的ajax是一樣的,在回撥函式中直接使用json物件即可。
二、jackson
jackson是另外一種把java物件轉化為json物件的jar包,要使用此種方式需要引入以下三個jar包:jackson-annotations-2.6.0-rc4.jar、jackson-core-2.6.0-rc4.jar、jackson-databind-2.6.0-rc4.jar,這裡使用的最新的jackson的jar包,下面是在配置檔案中的配置,
<!--spring4中返回json串的配置方式--> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jsonHttpMessageConverter" /> </list> </property> </bean> <!--配置jackson的bean,這裡使用的spring4中的配置--> <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
配置了jackson的bean,這裡的環境是spring4的環境,所以這裡需要配置的class為,
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
如果是spring3的話,那麼應該使用下面的class配置,
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
其他的都和spring4的環境保持不變,controller的程式碼都保持不變。
以上是在srpingmvc環境下兩種jar包返回json物件的配置方式,其關鍵在於配置檔案中的配置。