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>