程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> spring入門(七)【springMVC返回json串】,springmvcjson

spring入門(七)【springMVC返回json串】,springmvcjson

編輯:JAVA綜合教程

spring入門(七)【springMVC返回json串】,springmvcjson


現在多數的應用為了提高交互性多使用異步刷新,即在不刷新整個頁面的情況下,只刷新局部,局部刷新用得最多就是ajax,ajax和後台進行交互的數據格式使用的最多的是JSON,這裡簡單描述,在springmvc的開發架構下如何返回JSON串。這裡使用兩種方式進行配置,一:fastjson;二、jackson

一、fastjson

fastson是阿裡巴巴開源的一個json轉化jar包,在springmvc的架構下藥使用這種方式,需引入其jar包:fastjson-1.1.34.jar,這裡使用的是1.1.34的版本,這裡的環境是已經搭建好springmvc的開發環境,下面是在springmvc的配置文件中配置fastjson的配置文件,

<!--使用fastjson的方式-->
		
		<bean id="fastjson" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
			
			<property name="supportedMediaTypes">
				<list>
					<value>text/html;charset=UTF-8</value>
					<value>application/json;charset=UTF-8</value>
				</list>
			</property>
		</bean>

  配置了一個bean,指定了其class的屬性,且配置了屬性;我們要向前台返回json,需要使用springmvc的注解@ResponseBody,所以在配置文件中需要開啟mvc的注解驅動,

<!--開啟mvc的注解驅動 ,可以使用@RequestParam、@ResponseBody等注解-->
	<mvc:annotation-driven/>

  然後我們看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對象的配置方式,其關鍵在於配置文件中的配置。

有不正之處歡迎指出!謝謝!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved