Struts2 多条数据保存的实现
在企业开发过程中,经常会遇到多条数据,需要同时保存或者添加的问题,今天我们就来探讨下,在此,我仅仅抛砖引玉,希望大家积极发表自己的意见。
一) 前台字符串拼接,后台拆分
这种方式是利用js遍历数据,并使用一个特殊符号,把每条拼接在一起,到后台再按照特定字符,先拆分出一条记录,再拆分出所有数据。不推荐种方法,所以在这里不叙述了
二) 前台使用一个名字,后台拆分
前台代码
<form action="index.action"><input type="text" name="myTest" value="1"/><input type="text" name="myTest" value="2"/><input type="text" name="myTest" value="3"/><input type="text" name="myTest" value="4"/><input type="text" name="myTest" value="5"/><input type="submit"></form>
private String myTest;public String getMyTest() {return myTest;}public void setMyTest(String myTest) {this.myTest = myTest;}
<script type="text/javascript" src="_public/js/json2.js"></script><script type="text/javascript" src="_public/js/jqeury-1.8.3.js"></script>
var jsonArr = new Array(); $("input:checkbox:checked").each(function(i){ if($(this).val()!="on"){ jsonArr.push($(this).val()); } }); var params = JSON.stringify({ "delingArr":jsonArr }); var result = getJsonByAjaxArr(params,"houseDelete.action"); alert(result.executeMessage);
function getJsonByAjaxArr(param,actionName){var result;$.ajax({ url: actionName, type: 'POST',async: false,//同步 只有success之后才会继续走contentType:"application/json",//没有这个,数组将不成功data: param,success: function(returnData, textStatus) { result = returnData; }, error: function(xhr, textStatus, errorThrown) { alert("Data submit error"); }});return result;}
<package name="jsonTilesSuper" extends="json-default"><result-types><result-type name="tiles" /></result-types><interceptors><interceptor-stack name="myStack"><interceptor-ref name="json"/><interceptor-ref name="defaultStack" /></interceptor-stack></interceptors> <default-interceptor-ref name="myStack" /> <global-results> <result name="NOT_LOGIN" type="tiles">lodg.login</result> </global-results></package>
private ArrayList<String> delingArr;public ArrayList<String> getDelingArr() {return delingArr;}public void setDelingArr(ArrayList<String> delingArr) {this.delingArr = delingArr;}
<#if result?exists && (result?size>0) ><#list result as current><tr><td><input type="checkbox" name="chk" id="chk" value="${current.lodging_id?if_exists}" /></td><td>${current.lodging_catecd?if_exists}</td><td>${current.lodging_group?if_exists}</td><td>${current.lodging_unit?if_exists}</td><td>${current.lodging_floor?if_exists}</td><td>${current.lodging_ho?if_exists}</td><td>${current.room_count?if_exists}</td><td>${current.residence_number?if_exists}</td><td>${current.area?if_exists}</td><td>${current.lodging_type?if_exists}</td><td>${current.rent_compnm?if_exists}</td><td>${current.man_count?if_exists}</td><td><a style="cursor: hand" id="houseEdtForm" onclick="houseEdtFormClick('${current.lodging_id?if_exists}','${current.residence_number?if_exists}','${current.comp_cd?if_exists}','${current.houseType_cd?if_exists}')"> <img src="_public/images/ok.gif"> 修改</a></td></tr></#list><#else><tr><td colspan=12 class="st">没有检索出数据!</td></tr></#if>