關於 FormData 物件陣列傳值總結

spolier發表於2019-01-19

關於 FormData 物件陣列傳值總結

jQuery Java Spring MVC


jQuery 程式碼

提示: Ncr 已經存在於實體類中。

   // 提交資料
       $(`#submit-btn`).click(function(){
           // 資料獲取
           var formData = {};
           var inputNum = $(`.form-horizontal label`).length;
           // 判斷控制元件型別,以 formData 物件的形式向後臺傳資料
           for(var i=0;i<inputNum;i++){
               formData[`ncr[`+i+`].field`] = $(`.form-horizontal label`).data(`code`);
               if(type = "input"){               
                   formData[`ncr[`+i+`].inner`] = $(`.form-horizontal .input-delete`).eq(i).children().val();
               }else if(type = "select"){
                   var myStr = $(`.form-horizontal .input-delete`).eq(i).children().val().join("-");
                   formData[`ncr[`+i+`].inner`] = myStr; 
               }else if(type = "sort"){
                   var myStr2 = $(`.form-horizontal .input-delete`).eq(i).children().val().split(",").join("-");
                   formData[`ncr[`+i+`].inner`] = $(`.form-horizontal input`).val(); 
               }
           }
       });

在實體類中建立 Ncr List集合

private List<Ncr> ncr;

public List<Ncr> getNcr() {
    return ncr;
}
public void setNcr(List<Ncr> ncr) {
    this.ncr = ncr;

在Ncr.java List 集合中新增例項

public class Ncr {
    private String field;
    private String inner;
    public String getField() {
        return field;
    }
    public void setField(String field) {
        this.field = field;
    }
    public String getInner() {
        return inner;
    }
    public void setInner(String inner) {
        this.inner = inner;
    }    
}

在 controller 中呼叫

@RequestMapping(value = "recive") 
@ResponseBody  
 public Map<String, Object> recive(Ncr entity) {
 }

資料型別

{ncr[0].field:"name",ncr[0].inner:"fz",ncr[1].field:"age",ncr[1].inner:"24"}

相關文章