首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

页面多条记录提交的有关问题

2012-09-20 
页面多条记录提交的问题题:现在需要在页面输入多条数据,然后写入某一张数据库表,但是数据的条数是由另外一

页面多条记录提交的问题
  题:现在需要在页面输入多条数据,然后写入某一张数据库表,但是数据的条数是由另外一张表相关记录决定的。即从表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" style/></td>
<td  width="20%" nowrap align="center" valign="middle"><html:text property="item_xxcj1.chengJi1"  style/></td>
<td  width="20%" nowrap align="center" valign="middle"><html:text property="item_xxcj1.chengJi2" style/></td>
<td  width="20%" nowrap align="center" valign="middle"><html:text property="item_xxcj1.kschengJi" style/></td>
<td  width="20%" nowrap align="center" valign="middle"><html:text property="item_xxcj1.beiZhu" style/></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);
}

热点排行