将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