通常情况下,我们做的数据修改功能,都是在表格每一行数据的后边添加“编辑”按钮,把这一条数据传递到后台,类似于下图
这样的修改方式,只是针对于一条数据。但是要提交整个表格就不适用了。
类似于这样
需求是点击“编辑”按钮,表格进入可编辑状态(这也是个头疼的问题),然后修改数据,保存提交。
首先,我在考虑怎么让表格进入可编辑状态,这个问题上,查了很多资料,如果前端用bootstrap,需要引插件,如果前端用的jquary,那就更麻烦了,还得自己写插件,后来想了想,偷个懒,直接在表格<td>中加一个<input>标签,再调调样式就可以了,而且传值也方便。
<td><input type="text" name="" value=""></input></td>
表格可以编辑了之后,就要考虑传值的问题了
<c:forEach var="list" items="${newList }" varStatus="status">
<tr>
<td style="display:none;"><input type="hidden" name="bksList[${status.index}].id" value="${list.id}"></input>${list.id}</td>
<td>${list.companyName}</td>
<td><input type="text" name="bksList[${status.index}].originalIinvesAllfee" value="<fmt:formatNumber value='${list.originalIinvesAllfee}' pattern='0.00'/>"></input></td>
<td><fmt:formatNumber value="${list.originalInvesSum}" pattern="0.00"/></td>
<td><input type="text" name="bksList[${status.index}].originalInvesSumNum" value="<fmt:formatNumber value='${list.originalInvesSumNum}' pattern='0.00'/>"></input></td>
<td><fmt:formatNumber value="${list.originalFundReserch}" pattern="0.00"/></td>
<td><input type="text" name="bksList[${status.index}].originalFundReserchNum" value="<fmt:formatNumber value='${list.originalFundReserchNum}' pattern='0.00'/>"></input></td>
<td>${list.proportionSumNum}</td>
<td>${list.proportionAudiNum}</td>
</tr>
</c:forEach>
大致类似于springmvc的传值方式 对象的属性.属性
解释一下,代码中forEach中items="${newList },是后台action传来的参数集合,bkList是自定义实体类的属性,实体类与表单提交给后代的action如下代码
public class BksProject {
List<FundStatisticTechInvestInfo> bksList;
public List<FundStatisticTechInvestInfo> getBksList() {
return bksList;
}
public void setBksList(List<FundStatisticTechInvestInfo> bksList) {
this.bksList = bksList;
}
}
@RequestMapping("/updProjectAudiOpinionList")
public String updProjectAudiOpinionList(BksProject bksProject,String reportType,String reportYear,ModelMap model, HttpServletRequest request){
List<FundStatisticTechInvestInfo> bksList = bksProject.getBksList();
//数据修改
budgetStatisticBiz.updateTechInvestBatch(reportType, bksList);
return "redirect:/admin/budgetStatistic/projectAudiOpinionList"+"?reportYear="+reportYear+"&reportType="+reportType;
}