第一種 前台直接提交表單,后台封裝 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){