Form表單傳遞多個值傳遞List數組對象的解決方法之一


一開始想的是用  

$("#inputForm").serializeArray()  序列化生成對象 

后端   @RequestBody List<PositionType> positionTypeList  獲取到數據 ,

有些小伙伴估計已經發現了,就是id 和Sort是兩個對象了。導致后台獲取到的對象也是24個 

這該怎么辦呢? jquery serializeobject(); 想着用這個序列化成對象會不會好使。 結果里面的原理卻是把所有input對象都寫入一個對象中去了

現在公布最后的解決思路:

(1)第一步先序列化對象

var positionArray = $("#inputForm").serializeArray();

(2)寫個js對象模板

function positionTypeTemplate(id,positionTypeSort){
    var positionType = new Object();
    positionType.id = id;
    positionType.positionTypeSort = positionTypeSort;
    return positionType;
}

(3)  聲明個數組用來接收我們自己生成的對象,serializeArray  生成的對象屬性是  name  value  鍵值對的形式的,通過name屬性值進行判斷是否該生成一個對象。

var positionTypeList = new Array();
var params;
for(var i = 0 ; i < positionArray.length ; i ++ ){
    if(positionArray[i].name == "id"){
                       positionTypeList.push(positionTypeTemplate(positionArray[i].value,params));
   }
   params = positionArray[i].value;
}
這樣傳回來的集合對象就是我們想要的了

(4) 通過  @RequestBody List<PositionType> positionTypeList  可以將請求體中的JSON字符串綁定到相應的bean中上

當然也可以分別綁定到對應的字符串上,  需要特別注意的是 JSON 字符串中的key 必須對應user中屬性名,否則請求是過不去的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM