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>