1、ShfwZLbdAction.java添加do方法及跳转
//跳转语句 protected static final String PRINT_JSP = "/xcfw/zlbd/shfwZlbd_print.jsp"; //打印方法 public String printAll(){ return PRINT_JSP; }2、ShfwZlbd.java添加章节列表成员变量
//定义一个章节列表存放所有章节 private List<ShfwZlbdZj> zjs; @Transient public List<ShfwZlbdZj> getZjs() { return zjs; } public void setZjs(List<ShfwZlbdZj> zjs) { this.zjs = zjs; }3、ShfwZlbdZj.java添加字段列表成员变量
//定义一个字段列表存放所有字段 private List<ShfwZlbdZd> zdlist; @Transient public List<ShfwZlbdZd> getZdlist() { return zdlist; } public void setZdlist(List<ShfwZlbdZd> zdlist) { this.zdlist = zdlist; }4、ShfwZlbdManager.java
//关联字段Dao层,并生成set方法 private ShfwZlbdZdDao shfwZlbdZdDao; //重写getById方法 public ShfwZlbd getById(String id){ //根据id获取表单基本信息 ShfwZlbd zlbd = shfwZlbdDao.getById(id); //根据表单id获取章节信息 List<ShfwZlbdZj> list = shfwZlbdZjDao.searchByBdid(id); if(list != null){ //遍历每一个章节下的字段信息,并存入zdlist中 for(ShfwZlbdZj a:list){ List<ShfwZlbdZd> zlbdZdList = shfwZlbdZdDao.searchZdList(a.getId()); a.setZdlist(zlbdZdList); } } //将获取的章节信息存入zlbd的属性中 zlbd.setZjs(list); //将整个质量表单信息返回调用方 return zlbd; }5、JSP打印页面,重点(for each遍历所有的章节,并按章节遍历章节中的字段列表)
<tr> <td align="center">序号</td> //首先遍历每个表单中的字段,根据表单字段数量展示字段(c:if) <c:forEach var="item1" begin="1" end="${bdzdsl}"> <td items="zd${item1}" align="center"> <c:if test="${item1 == 1}">${zd1}</c:if> <c:if test="${item1 == 2}">${zd2}</c:if> <c:if test="${item1 == 3}">${zd3}</c:if> <c:if test="${item1 == 4}">${zd4}</c:if> <c:if test="${item1 == 5}">${zd5}</c:if> <c:if test="${item1 == 6}">${zd6}</c:if> <c:if test="${item1 == 7}">${zd7}</c:if> <c:if test="${item1 == 8}">${zd8}</c:if> <c:if test="${item1 == 9}">${zd9}</c:if> </td> </c:forEach> </tr> //遍历章节(相当于for(shfwZlbdZj item : zjs)) <c:forEach var="item" items="${zjs}"> <tr> //一个章节一行显示,根据表单字段数量动态合并列,+1加上序号列 <td colspan="${bdzdsl+1}">${item.zjmc}</td> </tr> //遍历章节中的字段(for(shfwZlbdZj item2 : zjs.zdlist)) <c:forEach var="item2" items="${item.zdlist}"> <tr> <td>${item2.xh }</td> <c:forEach var="item3" begin="1" end="${bdzdsl}"> <td items="zd${item3}" align="center"> <c:if test="${item3 == 1}">${item2.zd1}</c:if> <c:if test="${item3 == 2}">${item2.zd2}</c:if> <c:if test="${item3 == 3}">${item2.zd3}</c:if> <c:if test="${item3 == 4}">${item2.zd4}</c:if> <c:if test="${item3 == 5}">${item2.zd5}</c:if> <c:if test="${item3 == 6}">${item2.zd6}</c:if> <c:if test="${item3 == 7}">${item2.zd7}</c:if> <c:if test="${item3 == 8}">${item2.zd8}</c:if> <c:if test="${item3 == 9}">${item2.zd9}</c:if> </td> </c:forEach> </tr> </c:forEach> </c:forEach>