怎么用Springmvc的post請(qǐng)求json格式參數(shù)

這篇文章主要介紹了怎么用Springmvc的post請(qǐng)求json格式參數(shù)的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇怎么用Springmvc的post請(qǐng)求json格式參數(shù)文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

十余年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站設(shè)計(jì),個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)成都門窗定制等多個(gè)行業(yè),擁有多年建站經(jīng)驗(yàn)。

分析:

  這里我們只做get請(qǐng)求和post 請(qǐng)求 分析。

  1) springmvc 的配置方法不說(shuō)了,保證包含<mvc:annotation-driven/> 即可。

  2) 必備的jar 必不可少。springmvc 內(nèi)置的json 處理包是 jackson,完整引入方式。引入包有jackson-databind,jackson-core,jackson-annotations

<dependency>
      <groupId>com.fasterxml.jackson.module</groupId>
      <artifactId>jackson-module-jaxb-annotations</artifactId>
      <version>${jackson.version}</version>
    </dependency>

  3) 采用注解方式來(lái)實(shí)現(xiàn)Controller

package com.bkc.bpmp.modules.external.controller;

import java.io.IOException;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.bkc.bpmp.modules.external.pojo.ExternalSingleResult;


@Controller
@RequestMapping("/external")
public class Test
{
    @RequestMapping(value = "/test1")
    @ResponseBody
    public Object test1(@RequestBody String  pageData)
        throws IOException
    {
        System.out.println(pageData);
        return pageData;
    }
    
    @RequestMapping(value = "/test2")
    @ResponseBody
    public Object test2(@RequestParam String  pageData)
        throws IOException
    {
        System.out.println(pageData);
        return pageData;
    }
    
}

  4)對(duì)應(yīng)test2,采用的是 @RequestParam 方式獲取的參數(shù)

    其參數(shù)格式就是一般 a=a&b=b 模式

    而對(duì)于test1,采用的是 @RequestBody 方式獲取的參數(shù)

    其參數(shù)格式就是 json格式的字符串,{"a":"valueA","b":"valueB"}

  5)在我使用 HTTP請(qǐng)求工具測(cè)試 test2 的時(shí)候,一直報(bào) 415

    HTTP 415 錯(cuò)誤 – 不支持的媒體類型(Unsupported media type)

    因?yàn)槲以O(shè)置的請(qǐng)求格式為application/json ,應(yīng)該為 application/json;charset=UTF-8

  6)使用ajax 請(qǐng)求來(lái)測(cè)試,測(cè)試方法如下

    在TestAjax()方法中,data 是一個(gè)json 數(shù)組,用這種方式去發(fā)送請(qǐng)求的時(shí)候,其實(shí)本質(zhì)上就是參數(shù)格式為  a=a&b=b 模式。TestAjax2() 方法,傳遞的則是 json 字符串

function TestAjax() {
  var datas = {
          "equObjCode" : "EO_10HLB21AN001.QY-GL01.JZ-01.TY"
        };
  var url = "/external/test2";
  var obj = $("#result");
  var data = $.parseJSON(datas);
  $.ajax({
    type : "get",
    async : false,
    url : url,
    data : data,
    //cache : false, //默認(rèn)值true
    dataType : "jsonp",
    jsonp : "callback",//傳遞給請(qǐng)求處理程序或頁(yè)面的,用以獲得jsonp回調(diào)函數(shù)名的參數(shù)名(默認(rèn)為:callback)
    jsonpCallback : "jsonpCallback",
    //自定義的jsonp回調(diào)函數(shù)名稱,默認(rèn)為jQuery自動(dòng)生成的隨機(jī)函數(shù)名
    //如果這里自定了jsonp的回調(diào)函數(shù),則success函數(shù)則不起作用;否則success將起作用
    success : function(data) {
      obj.html(JSON.stringify(data));
      //obj.parent().css("background","#ddd");
    },
    error : function(XMLHttpRequest, textStatus) {
      obj.html(XMLHttpRequest.status + ","
          + XMLHttpRequest.readyState + ",error="
          + textStatus);
    }
  });
}
    
function TestAjax2() {
  var datas = {
      "equObjCode" : "EO_10HLB21AN001.QY-GL01.JZ-01.TY"
    };
  var url = "/external/test1";
  var obj = $("#result");
  $.ajax({
    type : "post",
    url : url,
    data : data,
    dataType : "json",
          contentType : 'application/json;charset=UTF-8',
    success : function(data) {
      obj.html(JSON.stringify(data));
    },
    error : function(XMLHttpRequest, textStatus) {
      obj.html(XMLHttpRequest.status + ","
          + XMLHttpRequest.readyState + ",error="
          + textStatus);
    }
  });
}

  7)

  jsonp 只支持get 請(qǐng)求,不支持post 請(qǐng)求。

  post模式下,使用@RequestBody 綁定請(qǐng)求對(duì)象,Spring會(huì)幫你進(jìn)行協(xié)議轉(zhuǎn)換,將Json、Xml協(xié)議轉(zhuǎn)換成你需要的對(duì)象。

關(guān)于“怎么用Springmvc的post請(qǐng)求json格式參數(shù)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“怎么用Springmvc的post請(qǐng)求json格式參數(shù)”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前文章:怎么用Springmvc的post請(qǐng)求json格式參數(shù)
文章來(lái)源:http://bm7419.com/article38/jdiepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、小程序開(kāi)發(fā)靜態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈建站公司、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司