国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

jqueryajax向后臺傳遞數組以及如何在后臺接收數組代碼詳解

來源:懂視網 責編:小采 時間:2020-11-27 20:16:15
文檔

jqueryajax向后臺傳遞數組以及如何在后臺接收數組代碼詳解

jqueryajax向后臺傳遞數組以及如何在后臺接收數組代碼詳解:JS中的數組是弱類型的可以放任何類型(對象、基本類型),但是如果數組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],原因如下: 在后臺接收的時候,只能用request來接收,request.getParameterValues()方法返回的
推薦度:
導讀jqueryajax向后臺傳遞數組以及如何在后臺接收數組代碼詳解:JS中的數組是弱類型的可以放任何類型(對象、基本類型),但是如果數組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],原因如下: 在后臺接收的時候,只能用request來接收,request.getParameterValues()方法返回的

JS中的數組是弱類型的可以放任何類型(對象、基本類型),但是如果數組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],原因如下:

在后臺接收的時候,只能用request來接收,request.getParameterValues()方法返回的是一個String[],所以,應該是在前臺傳輸的時候調用了對象的toString()方法,那么如果依然想傳遞對象怎么辦?但是可以使用JSON字符串來實現,在后臺把JSON字符串解析成JAVA對象。
也許,你要說如果是復合對象怎么辦,比如如下:

public class Person { 
private String username; 
private String password; 
private Address addr; 
}

Person對象里有個Address類型的addr屬性,沒關系,任何對象最終用到的屬性值都是基本數據類型,只需要使用對應的包裝類型parseInt、或者parseXXX解析即可。
實現:
OK,原理就是這么個。先看JS如何寫:

var as = []; 
var temp = []; 
for ( var int = 0; int < 5; int++) { 
temp.push('{"k":'); 
temp.push(int); 
temp.push(',"v":'); 
temp.push(int); 
temp.push('}'); 
as.push(temp.join("")); 
} 
//Jquery中的方法,具體參考Jquery API 
$.post( "servlet/AjaxServlet?m=putWarningRule",{"aa":as} );

最終拼成的串就是如下樣式,(只作舉例)

{"k":0,"v":0}

后臺接收,不討論任何框架,只需要HttpServletRequest即可

String[] jsonArr = request.getParameterValues("aa[]");

有一點需要注意,在js中傳參的時候參數名叫"aa",而在后臺接收的時候卻是"aa[]",這里應該是Jquery做了轉換,所以最好的方式就是在JS中就改為"aa[]",之所以這里沒有寫"[]"是為了說明問題。可以使用如下方式打印request中的所有參數

Enumeration<String> names = request.getParameterNames(); 
while (names.hasMoreElements()) { 
String string = (String) names.nextElement(); 
System.out.println(string); 
}

OK,至此為止,已經接收完畢,剩下的就是如何將一個JSON字符串轉成一個POJO了。

/** 
* 將對象轉換為JSON格式的字符串 
* @param obj 
* @return 返回JSON字符串 
*/ 
public 
static
 String toJSONAsString(Object obj){ 
try { 
return JSONMapper.toJSON(obj).render(false); 
} catch (Mapper
Exception
 e) { 
e.printStackTrace(); 
} 
return null; 
} 
@SuppressWarnings("unchecked") 
public static <T> T jsonToObject(String jsonStr, Class<T> targetClass) throws TokenStreamException, RecognitionException, MapperException{ 
JSONValue jv = new JSONParser(new StringReader(jsonStr)).nextValue(); 
return (T) JSONMapper.toJava(jv,targetClass); 
} 
//test 
public static void main(String[] args) throws Exception { 
Person p = new Person(); 
p.setK("a"); 
p.setV("v"); 
String json = toJSONAsString(p); 
Person np = jsonToObject(json,Person.class); 
System.out.println(np.getK()+"=="+np.getV()); 
}

request取到值后,遍歷數組,挨個轉換

Person p = JSONUtils.jsonToObject(jsonArr[0], Person.class);

Person類如下:

public class Person { 
private String k; 
private String v; 
public String getK() { 
return k; 
} 
public void setK(String k) { 
this.k = k; 
} 
public String getV() { 
return v; 
} 
public void setV(String v) { 
this.v = v; 
} 
}

有時候會出現問題,后臺接收不到該值。

解決辦法:

設置jQuery.ajax的tradional屬性

$.ajax({
 url: "/xxx",
 type: "GET",
 data: {
 "boxIds": boxIds,
 "boxType": 0,
 "time": new Date().getTime()
 },
 traditional: true,//這里設置為true
 success: function(data) {
 //do sth...
 }
});

請求參數2

這次參數不帶”[]”了,并且后臺可以成功接收到該數組。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

jqueryajax向后臺傳遞數組以及如何在后臺接收數組代碼詳解

jqueryajax向后臺傳遞數組以及如何在后臺接收數組代碼詳解:JS中的數組是弱類型的可以放任何類型(對象、基本類型),但是如果數組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],原因如下: 在后臺接收的時候,只能用request來接收,request.getParameterValues()方法返回的
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美第一页在线 | 国产在线视频在线 | 2021精品国内一区视频自线 | 欧美日韩国产一区二区三区播放 | 日韩精品在线观看免费 | 免费一级 一片一毛片 | 一区二区三区精品牛牛 | 亚洲国产成人久久综合野外 | 午夜在线免费视频 | 亚洲国产一区二区三区 | 国产91成人精品亚洲精品 | 在线免费观看一区二区三区 | 久久国产午夜一区二区福利 | 国产麻豆91 | 亚洲日韩图片专区第1页 | 亚洲国产一成人久久精品 | 永久免费毛片 | 国产欧美日韩一区二区三区在线 | 国产高清在线免费观看 | 国产福利久久青青草原下载 | 国产一级成人毛片 | 国产亚洲美女精品久久久2020 | 国产精品va一级二级三级 | 免费国产黄网站在线观看视频 | 国产成人手机在线好好热 | 欧美在线视频二区 | 苦瓜影院1313理论片 | 91精品啪国产在线观看免费牛牛 | 久久91精品国产91久久户 | 亚洲一区日韩一区欧美一区a | 视频精品一区二区 | 国产成人乱码一区二区三区在线 | 不卡免费视频 | 黄色aⅴ | 情趣视频网站 | 六十路垂乳熟年交尾正在播放 | 久久久久777777人人人视频 | 国产a久久精品一区二区三区 | 国产成人久久久精品毛片 | 亚洲欧美日韩高清一区二区一 | 亚洲国产一区二区三区精品 |