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

jquery ajax 向后臺傳遞數(shù)組參數(shù)示例

 更新時間:2013年07月30日 16:31:50   作者:  
在JS中向后臺傳遞數(shù)組參數(shù),如果數(shù)組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],具體的原因及解決方法如下,有類似問題的朋友可以參考下

需求:
在JS中向后臺傳遞數(shù)組參數(shù)

分析:
JS中的數(shù)組是弱類型的可以放任何類型(對象、基本類型),但是如果數(shù)組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],原因如下:
在后臺接收的時候,只能用request來接收,request.getParameterValues()方法返回的是一個String[],所以,應(yīng)該是在前臺傳輸?shù)臅r候調(diào)用了對象的toString()方法,那么如果依然想傳遞對象怎么辦?涼拌!
但是可以使用JSON字符串來實現(xiàn),在后臺把JSON字符串解析成JAVA對象。

也許,你要說如果是復(fù)合對象怎么辦,比如如下:

復(fù)制代碼 代碼如下:

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

Person對象里有個Address類型的addr屬性,沒關(guān)系,任何對象最終用到的屬性值都是基本數(shù)據(jù)類型,只需要使用對應(yīng)的包裝類型parseInt、或者parseXXX解析即可。

實現(xiàn):
OK,原理就是這么個。先看JS如何寫:
復(fù)制代碼 代碼如下:

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}
);


最終拼成的串就是如下樣式,(只作舉例)
復(fù)制代碼 代碼如下:

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

后臺接收,不討論任何框架,只需要HttpServletRequest即可
復(fù)制代碼 代碼如下:

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

有一點需要注意,在js中傳參的時候參數(shù)名叫"aa",而在后臺接收的時候卻是"aa[]",這里應(yīng)該是Jquery做了轉(zhuǎn)換,所以最好的方式就是在JS中就改為"aa[]",之所以這里沒有寫"[]"是為了說明問題??梢允褂萌缦路绞酱蛴equest中的所有參數(shù)
復(fù)制代碼 代碼如下:

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

OK,至此為止,已經(jīng)接收完畢,剩下的就是如何將一個JSON字符串轉(zhuǎn)成一個POJO了。我使用jsontools-core-1.7.jar,此jar包依賴antlr-2.7.7.jar,自行到代碼庫中下載,下載完畢,導(dǎo)入classpath,寫一個簡單的工具類,主要有這么2個方法:
復(fù)制代碼 代碼如下:

/**
* 將對象轉(zhuǎn)換為JSON格式的字符串
* @param obj
* @return 返回JSON字符串
*/
public static String toJSONAsString(Object obj){
try {
return JSONMapper.toJSON(obj).render(false);
} catch (MapperException 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取到值后,遍歷數(shù)組,挨個轉(zhuǎn)換
復(fù)制代碼 代碼如下:

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

Person類如下:
復(fù)制代碼 代碼如下:

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;
}
}

相關(guān)文章

  • Jquery中ajax提交表單幾種方法(get、post兩種方法)

    Jquery中ajax提交表單幾種方法(get、post兩種方法)

    ajax技術(shù)帶給我們的是良好的用戶體驗,同時,使用jquery可以簡化開發(fā),提高工作效率,接下來,腳本之家小編給大家分享Jquery中ajax提交表單幾種方法,需要的朋友可以參考下
    2015-09-09
  • jquery通過AJAX從后臺獲取信息并顯示在表格上的實現(xiàn)類

    jquery通過AJAX從后臺獲取信息并顯示在表格上的實現(xiàn)類

    今天小編抽給時間把jquery通過AJAX從后臺獲取信息并顯示在表格上的實現(xiàn)類,單獨寫出來,這樣程序員,不需要每次寫代碼了,可以節(jié)省大量的時間,感興趣的朋友一起來看看吧
    2015-09-09
  • 使用AJAX實現(xiàn)分頁

    使用AJAX實現(xiàn)分頁

    這篇文章主要為大家詳細(xì)介紹了AJAX實現(xiàn)分頁的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Ajax校驗用戶名是否存在的方法

    Ajax校驗用戶名是否存在的方法

    這篇文章主要為大家詳細(xì)介紹了Ajax校驗用戶名是否存在的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 淺析Ajax后臺success傳來json數(shù)據(jù)的問題

    淺析Ajax后臺success傳來json數(shù)據(jù)的問題

    最近在使用JQuery的ajax方法時,需要返回的數(shù)據(jù)為json數(shù)據(jù),在success返回中數(shù)據(jù)處理會根據(jù)返回方式不同會采用不同的方式來生成json數(shù)據(jù)。下面小編給大家介紹下在$.ajax方法中應(yīng)該是如何來處理的
    2016-10-10
  • 你的jquery ajax無效和你的jquery引入路徑有關(guān)

    你的jquery ajax無效和你的jquery引入路徑有關(guān)

    當(dāng)你發(fā)現(xiàn)你的jquery ajax無效的時候,不妨使用 fire bug調(diào)試一下,這時你會發(fā)現(xiàn),提示"$"無效,為什么會有這種提示呢?可能是你引入jquery.js的路徑有問題
    2013-06-06
  • Ajax請求內(nèi)嵌套Ajax請求示例代碼

    Ajax請求內(nèi)嵌套Ajax請求示例代碼

    把全國省市的兩個XML文件整合成一個JSON格式的數(shù)據(jù),就想到了用Ajax嵌套的方法來解決,查找資料,加個async:false這個Ajax參數(shù)就行了
    2014-08-08
  • ajax提交整個from表單示例代碼

    ajax提交整個from表單示例代碼

    這篇文章主要介紹了ajax提交整個from表單實現(xiàn)代碼,需要的朋友可以參考下
    2014-05-05
  • 基于Ajaxupload的多文件上傳操作

    基于Ajaxupload的多文件上傳操作

    本文通過實例代碼給大家介紹了基于Ajaxupload的多文件上傳操作,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-08-08
  • Ajax結(jié)合php實現(xiàn)二級聯(lián)動

    Ajax結(jié)合php實現(xiàn)二級聯(lián)動

    這篇文章主要為大家詳細(xì)介紹了Ajax結(jié)合php實現(xiàn)二級聯(lián)動,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

会东县| 西畴县| 长岭县| 青河县| 左云县| 赤城县| 大丰市| 祁门县| 太仆寺旗| 竹山县| 汝阳县| 白玉县| 英德市| 彰化市| 固原市| 新源县| 临武县| 滨海县| 灵台县| 新和县| 三亚市| 鹤岗市| 夏河县| 当阳市| 三河市| 理塘县| 保德县| 镇康县| 苍南县| 洛南县| 临安市| 宜州市| 道真| 阳信县| 镇康县| 达拉特旗| 大理市| 桐庐县| 三穗县| 和林格尔县| 鹤庆县|