页面多条记录提交的问题

题:现在需要在页面输入多条数据,然后写入某一张数据库表,但是数据的条数是由另外一张表相关记录决定的。即从表A查找符合条件的数据条数N,页面显示N条记录,除了第一列是A表中数据,其他列数据都是需要编辑,然后一起提交写入表B。
经过几个小时的思考实验、终于在凌晨1点解决问题了,O(∩_∩)O~
首先需要得出数据条数N,classstudentList是从A表从查出的多条记录,通过如下代码将gradeList需要的数据放入gradeList,而且使得gradeList数据记录数也是N。
for(int k =0;k<classstudentList.size();k++){
TGrade TGrade=new TGrade();
TGrade.setUserId(classstudentList.get(k).getUserId());
gradeList.add(TGrade);
}
request.getSession().setAttribute("gradeList",gradeList);

在JSP页面显示上,通过c:forEach显示N条记录
<%List<TGrade> list1 = (ArrayList<TGrade>)request.getSession().getAttribute("gradeList");
if(list1.size()>0){%>
<input type="hidden" id="fj_exist" value="yes">
<tr style="font-family: Arial;font-family: sans-serif;font-size:12px;font-weight: bold;Background-color: #E8F2FE;line-height:20px">
<td width="5%" nowrap align="center" valign="middle">序号</td>
<td width="15%" nowrap align="center" valign="middle">学号</td>
<td width="20%" nowrap align="center" valign="middle">平时成绩1</td>
<td width="20%" nowrap align="center" valign="middle">平时成绩2</td>
<td width="20%" nowrap align="center" valign="middle">考试成绩</td>
<td width="20%" nowrap align="center" valign="middle">备注</td>
</tr>
<%int i=0 ;%>
<c:forEach items="${gradeList}" var="gradeList">
<%i++; %>
<tr style=" text-align: center;background: White;font-weight: normal">
<td width="5%" align="center" valign="middle"><%=i%></td>
<td width="15%" nowrap align="center" valign="middle"><html:text property="item_xxcj1.userId" value="${gradeList.userId}" readonly="true" styleClass="editbox" /></td>
<td width="20%" nowrap align="center" valign="middle"><html:text property="item_xxcj1.chengJi1" styleClass="editbox" /></td>
<td width="20%" nowrap align="center" valign="middle"><html:text property="item_xxcj1.chengJi2" styleClass="editbox" /></td>
<td width="20%" nowrap align="center" valign="middle"><html:text property="item_xxcj1.kschengJi" styleClass="editbox" /></td>
<td width="20%" nowrap align="center" valign="middle"><html:text property="item_xxcj1.beiZhu" styleClass="editbox" /></td>
</tr>
</c:forEach>
<%} %>
在后台Action处理时,通过request.getParameterValues("item_xxcj1.userId")得到前台所有变量为item_xxcj1.userId的值,此时list大小可以由gradeList1得出,通过遍历,将所有数据放入gradeList中,至此,所有数据都放到了gradeList中,可以提交到数据库中!
String userId[]=request.getParameterValues("item_xxcj1.userId");
String chengJi1[]=request.getParameterValues("item_xxcj1.chengJi1");
String chengJi2[]=request.getParameterValues("item_xxcj1.chengJi2");
String kschengJi[]=request.getParameterValues("item_xxcj1.kschengJi");
String beiZhu[]=request.getParameterValues("item_xxcj1.beiZhu");
List<TGrade> gradeList = new ArrayList<TGrade>();
List<TGrade> gradeList1 = new ArrayList<TGrade>();
gradeList1=(List<TGrade>) request.getSession().getAttribute("gradeList");
for(int k =0;k< gradeList1.size();k++){
TGrade TGrade=new TGrade();
TGrade.setUserId(userId[k]);
TGrade.setChengJi1(Double.valueOf(chengJi1[k]));
TGrade.setChengJi2(Double.valueOf(chengJi2[k]));
TGrade.setKschengJi(Double.valueOf(kschengJi[k]));
TGrade.setBeiZhu(beiZhu[k]);
gradeList.add(TGrade);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值