最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解springmvc之json數(shù)據(jù)交互controller方法返回值為簡單類型

 更新時間:2017年05月06日 11:09:46   作者:思念悲傷  
這篇文章主要介紹了springmvc之json數(shù)據(jù)交互controller方法返回值為簡單類型,非常具有實用價值,需要的朋友可以參考下

當controller方法的返回值為簡單類型比如String時,該如何與json交互呢?

使用@RequestBody

比如代碼如下:

@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
@ResponseBody
public String ceshijson(@RequestBody String channelId) throws IOException{

 return channelId;

如果代碼為上面這種情況時,前臺發(fā)送json時,應(yīng)該這樣寫(寫法有很多,能用就行)

function channel(){
   //先獲取選中的值
   var channelId = $("#channelId option:selected").val();
   //來判斷發(fā)送的鏈接
   if(channelId ==2){


   $.ajax({
     url:"ceshijson",
     type:"post",
     dataType:'json',
     contentType:'application/json;charset=utf-8',
     data:JSON.stringify({'channelId':channelId}),
     success:function(data){
      alert(data.channelId);
     },
     error:function(XMLHttpRequest, textStatus, errorThrown){ 
     alert("Error") 
     alert(XMLHttpRequest.status); 
     alert(XMLHttpRequest.readyState); 
     alert(textStatus); 
     }
   });
   }
  }

這里需要特別注意:上篇也強調(diào)過,使用了@RequestBody時,它要求String channelId接收到數(shù)據(jù)為json字符串。也就是要是data寫成這樣: data:{‘channelId':channelId},就是錯誤的。因為這是json對象形式。

要是你不想使用JSON.stringify()這個函數(shù),那就自己手動字符串拼接:

data:'{"channelId":'+channelId+'}'

這里還要注意channelId是雙引號,不能寫成單引號,因為這是json語法規(guī)則。你改成單引號,也就是

**錯誤寫法

data:"{'channelId':"+channelId+"}"

這種形式,雖然可以傳給后臺,但是后臺傳回來的會出現(xiàn)undefined。也就是key必須要用雙引號包圍。

不使用@RequestBody

 @RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
 @ResponseBody
 public String ceshijson(String channelId) throws IOException{
  Map<String,Object> map = new HashMap<String,Object>();
   map.put("channelId", channelId);
   ObjectMapper mapper = new ObjectMapper();
   channelId = mapper.writeValueAsString(map);
  return channelId;
 }

前臺代碼

$.ajax({
   url:"ceshijson",
   type:"post",
   dataType:'json',
   //contentType:'application/json;charset=utf-8',
   data:"channelId="+channelId,
   success:function(data){
    alert(data);
   },
   error:function(XMLHttpRequest, textStatus, errorThrown){ 
     alert("Error") 
     alert(XMLHttpRequest.status); 
     alert(XMLHttpRequest.readyState); 
     alert(textStatus); 
    }
});

這種方式利用ObjectMapper中的writeValueAsString將Java對象轉(zhuǎn)換為json字符串。

總結(jié):這種方式,其實是沒有多大的實際意思,因為一般接收數(shù)據(jù)不是這么接收的。只做了解!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Maven實戰(zhàn)之搭建Maven私服和鏡像的方法(圖文)

    Maven實戰(zhàn)之搭建Maven私服和鏡像的方法(圖文)

    本篇文章主要介紹了搭建Maven私服和鏡像的方法(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Java利用iTextPDF庫實現(xiàn)制作PDF表格模板并填充數(shù)據(jù)

    Java利用iTextPDF庫實現(xiàn)制作PDF表格模板并填充數(shù)據(jù)

    這篇文章主要為大家詳細介紹了如何通過Java的iTextPDF庫制作一個PDF表格模板并填充數(shù)據(jù),文中的示例代碼講解詳細,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2023-12-12
  • Java線程創(chuàng)建靜態(tài)代理模式代碼實例

    Java線程創(chuàng)建靜態(tài)代理模式代碼實例

    這篇文章主要介紹了Java線程創(chuàng)建靜態(tài)代理模式代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 基于Ok+Rxjava+retrofit實現(xiàn)斷點續(xù)傳下載

    基于Ok+Rxjava+retrofit實現(xiàn)斷點續(xù)傳下載

    這篇文章主要為大家詳細介紹了基于Ok+Rxjava+retrofit實現(xiàn)斷點續(xù)傳下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • SpringBoot中的ApplicationListener事件監(jiān)聽器使用詳解

    SpringBoot中的ApplicationListener事件監(jiān)聽器使用詳解

    這篇文章主要介紹了SpringBoot中的ApplicationListener事件監(jiān)聽器使用詳解,ApplicationListener是應(yīng)用程序的事件監(jiān)聽器,繼承自java.util.EventListener標準接口,采用觀察者設(shè)計模式,需要的朋友可以參考下
    2023-11-11
  • java定位死鎖的三種方法(jstack、Arthas和Jvisualvm)

    java定位死鎖的三種方法(jstack、Arthas和Jvisualvm)

    這篇文章主要給大家介紹了關(guān)于java定位死鎖的三種方法,分別是通過jstack定位死鎖信息、通過Arthas工具定位死鎖以及通過 Jvisualvm 定位死鎖,文中還介紹了死鎖的預(yù)防方法,需要的朋友可以參考下
    2021-09-09
  • MyBatis映射關(guān)系詳解

    MyBatis映射關(guān)系詳解

    本文重點介紹MyBatis映射關(guān)系重點是映射關(guān)系一對一,一對一映射方式結(jié)合應(yīng)用實例給大家詳細講解,對MyBatis映射關(guān)系相關(guān)知識感興趣的朋友一起看看吧
    2022-11-11
  • 詳解SpringBoot中的統(tǒng)一異常處理

    詳解SpringBoot中的統(tǒng)一異常處理

    這篇文章主要介紹了詳解SpringBoot中的統(tǒng)一異常處理,在獨立的某個地方,比如單獨一個類,定義一套對各種異常的處理機制,需要的朋友可以參考下
    2023-05-05
  • java線程之死鎖

    java線程之死鎖

    這篇文章主要介紹了Java線程之死鎖,死鎖是這樣一種情形-多個線程同時被阻塞,它們中的一個或者全部都在等待某個資源被釋放。由于線程被無限期地阻塞,因此程序不可能正常終止
    2022-05-05
  • 在Java中使用ModelMapper簡化Shapefile屬性轉(zhuǎn)JavaBean實戰(zhàn)過程

    在Java中使用ModelMapper簡化Shapefile屬性轉(zhuǎn)JavaBean實戰(zhàn)過程

    本文介紹了在Java中使用ModelMapper庫簡化Shapefile屬性轉(zhuǎn)JavaBean的過程,對比了原始的set方法和構(gòu)造方法,展示了如何使用ModelMapper進行動態(tài)屬性映射,從而減少手動編寫轉(zhuǎn)換代碼的工作量,通過示例代碼,展示了如何使用GeoTools讀取Shapefile屬性并將其轉(zhuǎn)換為JavaBean對象
    2025-02-02

最新評論

海淀区| 栖霞市| 潍坊市| 通州市| 太白县| 依兰县| 泗阳县| 左贡县| 芒康县| 延吉市| 临清市| 濮阳县| 瑞昌市| 霞浦县| 满城县| 綦江县| 鄂尔多斯市| 亚东县| 象州县| 奎屯市| 武宁县| 黔江区| 浙江省| 会宁县| 确山县| 宜君县| 望都县| 金湖县| 繁昌县| 千阳县| 佛坪县| 伊金霍洛旗| 达州市| 闵行区| 新宁县| 神农架林区| 兰坪| 遵化市| 房产| 和政县| 英超|