日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring MVC--自定义HttpMessageConverter接收JSON格式的数据

發布時間:2025/1/21 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC--自定义HttpMessageConverter接收JSON格式的数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

替換默認的Jackson,使用fastjson來處理json格式的數據。

index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>測試接收JSON格式的數據</title> <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> <script type="text/javascript" src="js/json2.js"></script> <script type="text/javascript"> $(document).ready(function(){testRequestBody(); }); function testRequestBody(){$.ajax("${pageContext.request.contextPath}/json/testRequestBody",// 發送請求的URL字符串。{dataType : "json", // 預期服務器返回的數據類型。type : "post", // 請求方式 POST或GETcontentType:"application/json", // 發送信息至服務器時的內容編碼類型// 發送到服務器的數據。data:JSON.stringify({id : 1, name : "水滸傳"}),async: true , // 默認設置下,所有請求均為異步請求。如果設置為false,則發送同步請求// 請求成功后的回調函數。success :function(data){console.log(data);$("#id").html(data.id);$("#name").html(data.name);$("#author").html(data.author);},// 請求出錯時調用的函數error:function(){alert("數據發送失敗");}}); } </script> </head> <body> 編號:<span id="id"></span><br> 書名:<span id="name"></span><br> 作者:<span id="author"></span><br> </body> </html>
BookController.java
package org.zhangxueliang.controller;import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.zhangxueliang.domain.Book;import com.alibaba.fastjson.JSONObject;@Controller @RequestMapping("/json") public class BookController {private static final Log logger = LogFactory.getLog(BookController.class);// @RequestBody根據json數據,轉換成對應的Object@RequestMapping(value="/testRequestBody")public void setJson(@RequestBody Book book,HttpServletResponse response) throws Exception{// JSONObject-lib包是一個beans,collections,maps,java arrays和xml和JSON互相轉換的包。// 使用JSONObject將book對象轉換成json輸出logger.info(JSONObject.toJSONString(book));book.setAuthor("施耐庵");response.setContentType("text/html;charset=UTF-8");// 將book對象轉換成json寫出到客戶端response.getWriter().println(JSONObject.toJSONString(book));}}
Book.java
package org.zhangxueliang.domain;import java.io.Serializable;public class Book implements Serializable {private Integer id;private String name;private String author;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}@Overridepublic String toString() {return "Book [id=" + id + ", name=" + name + ", author=" + author + "]";}}
springmvc-config.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:util="http://www.springframework.org/schema/util"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.2.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.2.xsd"><!-- spring可以自動去掃描base-pack下面的包或者子包下面的java文件,如果掃描到有Spring的相關注解的類,則把這些類注冊為Spring的bean --><context:component-scan base-package="org.zhangxueliang.controller"/><!-- 使用默認的Servlet來響應靜態文件 --><mvc:default-servlet-handler/><!-- 設置配置方案 --><mvc:annotation-driven><!-- 設置不使用默認的消息轉換器 --><mvc:message-converters register-defaults="false"><!-- 配置Spring的轉換器 --><bean class="org.springframework.http.converter.StringHttpMessageConverter"/><bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"/><bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/><bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/><!-- 配置fastjson中實現HttpMessageConverter接口的轉換器 --><bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"><!-- 加入支持的媒體類型:返回contentType --><property name="supportedMediaTypes"><list><!-- 這里順序不能反,一定先寫text/html,不然ie下會出現下載提示 --><value>text/html;charset=UTF-8</value><value>application/json;charset=UTF-8</value></list></property></bean></mvc:message-converters></mvc:annotation-driven><!-- 視圖解析器 --><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前綴 --><property name="prefix"><value>/WEB-INF/content/</value></property><!-- 后綴 --><property name="suffix"><value>.jsp</value></property></bean></beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><!-- 定義Spring MVC的前端控制器 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/springmvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!-- 讓Spring MVC的前端控制器攔截所有請求 --><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 編碼過濾器 --><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

總結

以上是生活随笔為你收集整理的Spring MVC--自定义HttpMessageConverter接收JSON格式的数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。