1. 程式人生 > >SpringMVC返回json資料的配置

SpringMVC返回json資料的配置

1、第一種方式是spring2時代的產物,也就是每個json檢視controller配置一個Jsoniew。

如:

<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>

或者

<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>

同樣要用jackson的jar包。

jackson-core-*.jar
jackson-databind-*.jar

2、第二種使用JSON工具將物件序列化成json,常用工具Jackson,fastjson,gson。
利用HttpServletResponse,然後獲取response.getOutputStream()或response.getWriter()直接輸出。
SpringMVC 中使用如下:
ResponseUtils.java

import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import
org.slf4j.LoggerFactory; /** * HttpServletResponse幫助類 * * @author luanzelin * */ public class ResponseUtils { private static final Logger log = LoggerFactory.getLogger(ResponseUtils.class); /** * 傳送json。使用UTF-8編碼。 * * @param response * HttpServletResponse * @param
text * 傳送的字串 */
public static void renderJson(HttpServletResponse response, String text) { render(response, "application/json;charset=UTF-8", text); } /** * 傳送內容。使用UTF-8編碼。 * * @param response * @param contentType * @param text */ public static void render(HttpServletResponse response, String contentType, String text) { response.setContentType(contentType); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); try { response.getWriter().write(text); } catch (IOException e) { log.error(e.getMessage(), e); } } }

controller:

@RequestMapping("/getDatabaseTable.do")
public void getDatabaseTable(HttpServletResponse response) {
    List<String> tableName = new ArrayList<String>();
    JSONObject json = new JSONObject();
    json.put("tableName", tableName);
    ResponseUtils.renderJson(response, json.toString());
}

3、第三種利用spring mvc3的註解@ResponseBody
例如:

@ResponseBody  
@RequestMapping("/list")  
public List<String> list(ModelMap modelMap) {  
    String hql = "select c from Clothing c ";  
    Page<Clothing> page = new Page<Clothing>();  
    page.setPageSize(6);  
    page  = clothingServiceImpl.queryForPageByHql(page, hql);  

    return page.getResult();  
}  

然後使用spring mvc的預設配置就可以返回json了,不過需要jackson的jar包哦。

注意:當springMVC-servlet.xml中使用時,如果是3.1之前已經預設注入AnnotationMethodHandlerAdapter,3.1之後預設注入RequestMappingHandlerAdapter只需加上上面提及的jar包即可!
如果是手動注入RequestMappingHandlerAdapter 可以這樣設定
配置如下:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"  
        p:ignoreDefaultModelOnRedirect="true" >  
    <property name="messageConverters">  
        <list>  
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>  
        </list>  
    </property>  
</bean>  

新增包
jackson-mapper-asl-*.jar
jackson-core-asl-*.jar

相關推薦

SpringMVC返回json資料配置

1、第一種方式是spring2時代的產物,也就是每個json檢視controller配置一個Jsoniew。 如: <bean id="defaultJsonView" class="org.springframework.web.servlet.

SpringMVC返回json資料配置方式

spring mvc 返回json格式資料的方式主要有三種:  1、使用JSON工具將物件序列化成json,常用工具Jackson,fastjson,gson。 利用HttpServletResponse,然後獲取response.getOutputStream()或response.getWrite

Springmvc返回json資料

SpringMvc返回json型別資料有以下幾種方式(個人都使用過): 1、在方法上使用@ResponseBody註解      需要引入jackson依賴包。 <dependency> <groupId>com.fasterx

SpringMVC返回json資料的三種方式

1、第一種方式是spring2時代的產物,也就是每個json檢視controller配置一個Jsoniew。 如:<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json

【Spring】SpringMVC返回json資料的三種方式

歡迎關注公眾號: ----------------------------------------------正文---------------------------------------------------- 方式一:使用JSON工具將物件序列化成j

springMVC返回json資料時date型別資料被轉成long型別

在專案的過程中肯定會遇到ajax請求,但是再用的過程中會發現,在資料庫中好好的時間型別資料:2017-05-04 17:52:24 在轉json的時候,得到的就不是時間格式了 而是145245121這

Springmvc 返回json資料,填充html 或 jsp頁面。

maven pom.xml: <!-- net json --> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId&g

SpringMVC返回JSON資料date日期格式化,解決返回為TIMESTAMP時間戳格式

資料庫中使用的是timestamp型別,在po類裡面屬性的格式為Date型別,但是在返回json字串的時候,卻是返回的是long型別的資料,這個不是我們需要的資料型別,之前一直想著前端使用js直接格式化一下就好了,但是前端說只做資料的展示,不做資料的處理,好吧,

SpringMVC返回json資料格式(返回值作為響應體)

       本文探討了基於註解方式的SpringMVC(3.1版本以上)返回值(響應體)的型別的探討,由於xml格式解析的複雜化和js平臺支援狀況,下面主要探討了基於返回json格式資料的返回值型別的問題,可以返回三種類型的資料會被轉換為json格式,第一種:Map型別;

解決SpringMVC返回Json資料格式不嚴謹報異常的問題(草稿未完成)

週末除錯程式的時候發現的該問題,表現如下:      當springmvc配合jackson返回json資料不是嚴格按照json格式返回時,如服務端返回:{“age":20}      同域請求不報錯,瀏覽器直接請求也不報錯可以正常返回,但跨域用jquery請求時會報一個unexpected end of

SpringMVC返回json資料的日期格式統一轉換

有時候我們做介面時候,返回json的資料,controller層的方法用@ResponseBody註解,方法返回的是一個bean,bean裡面可能有個從資料庫獲取的資料map,如果有日期格式的欄位,可能返回的是時間戳的日期。 解決方法有兩種 1.增加map xml的資料

springmvc返回json資料去除null值

package com.xilehang.kaola.po.orderConfirm; import com.fasterxml.jackson.databind.annotation.JsonSerialize; //轉json是排除null @SuppressWar

SpringMVC 返回json資料的三種方式

1、第一種方式是spring2時代的產物,也就是每個json檢視controller配置一個Jsoniew。 如:<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json

SpringMVC返回JSON資料的坑

測試一: @RequestMapping(value = "/test1", method = RequestMethod.POST) @ResponseBody public P

關於springmvc 返回json資料null欄位的顯示問題

最近做專案(ssm框架)的時候,發現從後臺返回的json(fastjson)資料對應不上實體類,從資料庫查詢的資料,如果對應的實體類的欄位沒有資訊的話,json資料裡面就不顯示,這不是我想要的結果,準確說是前端頭疼的事情,然後我看了一下fastjson的配置,最後解決了現

配置ajax請求springmvc返回json格式資料

首先在controller的方法返回值(返回值型別為實體類)上增加@ResponseBody註解 然後兩種配置方式如下: 方式一:spring4.0以及之後版本推薦 pom.xml增加如下依賴包 &l

springMVC利用FastJson介面返回json資料相關配置

一直使用的是FastJson,感覺還不錯,很方便。看了一段別人的分析,覺得很有道理。 [為什麼要使用Fastjson,其實原因不需要太多,喜歡就行。 我之所以要替換掉Jackson最主要的原因是Jackson在處理物件之前的迴圈巢狀關係時不便。

SpringMVC返回Json失敗,請檢查是否配置了Jackson

springmvc jackson json 配置文件背景需要一套幹凈的Spring+Spring MVC+Mybatis框架,框架寫到返回Json的環節報錯了。問題無法Json,報406解決需要配置Json工具包,這裏用JacksonMaven Jackson <!-- https://

SpringMVC 使用ResponseBody 返回json資料

1.Ctroller 添加註解@ResponseBody 2.pom.xml檔案新增兩個引入包 <!-- Jsckson -->         <dependency>    &n

SpringMVC返回JSON資料時出現406錯誤解決方案

       在SpringMVC框架的使用中常常會使用@ResponseBody註解,修飾“處理器”(Controller的方法),這樣在處理器在返回完畢後,就不走邏輯檢視,而是將返回的物件轉成JSON字串響應給客戶端,但這種操作有時會出現406錯誤。