將table 中的每個tr 的數據轉成對象傳到后台List接收(SpringMvc)


第一種 前台直接提交表單,后台封裝
1步、頁面 這是js寫頁面的一部分,主要是name
content += "<td><a href='javascript:void(0);' class='order-shop-thumb'><img src='<%=request.getContextPath()%>/images/system/goods/2.jpg'></a></td>"
                    +"<td><input type='hidden' name='products["+i+"].stockSku' class='h28-text w250' value='"+data[i].stockSku+"'>"+data[i].stockSku+"</td>"
                    +"<td><input type='text' name='products["+i+"].cnName' class='h28-text w250' value='"+data[i].cnName+"'></td>"
                    +"<td><input type='text' name='products["+i+"].enName' class='h28-text w250' value='"+data[i].enName+"'></td>"
                    +"</tr>";

2步、直接提交表單

3、后台接收
 @RequestMapping("/saveBatchEditProductInfo")
    @ResponseBody
    public RequestResult<Object> saveBatchEditProductInfo(ProductModel products){}

4、封裝模型
package com.sjdf.erp.facade.vo.product;

import java.util.List;

import com.sjdf.erp.facade.bean.product.PubProduct;

public class ProductModel {
    private List<PubProduct> products;

    public List<PubProduct> getProducts() {
        return products;
    }

    public void setProducts(List<PubProduct> products) {
        this.products = products;
    }
    
}


第二種,在前台台,后台list接收

1步頁面

 declareContent += "<td><input type='hidden' name='stockSku' class='h28-text w250' value='"+data[i].stockSku+"'>"+data[i].stockSku+"</td>"
                    +"<td><input type='text' name='decCnName' class='h28-text w200' value='"+data[i].decCnName+"'></td>"
                    +"<td><input type='text' name='decEnName' class='h28-text w200' value='"+data[i].decEnName+"'></td>"
                    +"<td><input type='text' name='weight' class='h28-text w80' value='"+data[i].weight+"'></td>"
                    +"<td><button class='h28-table-btn editShopBtn'>應用給所有</button></td>"
                    +"</tr>";

2步 封裝json
//批量修改商品名稱后提交表單
function productBatchEditFormSubmit(formName){
    var jsonArr = [];
    $("#"+formName).find("tr").each(function(){
        var json = {};
        var flag = false;
        $(this).find("[value]").each(function(){
            flag = true;
            json[$(this).attr("name")] = $(this).val();
        });
        if (flag) {
            jsonArr.push(json);
        }
    });
    console.debug(jsonArr);
     jConfirm("確認保存!",function(){
        $.postJSON("/product/saveBatchEditProductInfo",
                jsonArr,
                function(rs){
                    if(rs.code==0){
                       jSuccess(rs.msg)
                    }else {
                        jFail(rs.msg);
                    }
        });
        
    });  
}

//下面這個是直接寫在一個js文件中,只是做了一個封裝,引入,直接可以用 $.postJSON()

/*
 * 對jQuery類級別的的擴展。可以引入后可以直接用$.xxx()使用
 */
jQuery.extend({
    /**
     * 以JSON方式提交數據到服務端
     * @param url        必需。規定把請求發送到哪個 URL。
     * @param data        可選。映射或字符串值。規定連同請求發送到服務器的數據。
     * @param success    可選。請求成功時執行的回調函數。
     * @param dataType    可選。規定預期的服務器響應的數據類型。默認執行智能判斷(xml、json、script 或 html)。
     */
    postJSON:function(url, data, success, dataType) {
        $.ajax({
            type: "post",
            url: url,
            async: true,
            data: JSON.stringify(data),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: success
        }); 
    }
});

//后台接收
@RequestMapping("/saveBatchEditProductInfo")
    @ResponseBody
    public RequestResult<Object> saveBatchEditProductInfo(@RequestBody List<PubProduct> products){
 
         

 

 

 


免責聲明!

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



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