1) Caption指标题
2) name:数据源
3) defaultsort:排序列,一般不需要
4) defaultorder:排序方式
5) class:表格显示的样式
6) varTotals:需要统计(总计)
7) decorator="totals":表示使用指定的decorator。现在仅在同时使用小计、合计时用到,自己也可以定制。
8) <display:column 部分:
property指数据中的列名
title指显示的标题
format指数据的格式化样式,
total表示该字段是否需要作统计。
style="width:20%"可以设置宽度。
也可以用
<display:column title="请假时间">
<fmt:formatDate value="${currentRowObject.QJSJ}" pattern="yyyy-MM-dd"/>
</display:column>表现。
group="1"表示进行group的字段。
9) 在表格中建立一个连接:
<display:column title="部别">
<a href="<c:out value="${pageContext.request.contextPath}"/>
/holidayDefaultSearchStatView.do?type=
<c:out value="${currentRowObject.CJDM}"/>&SYD=
<c:out value="${currentRowObject.DWDM}"/>" target="_blank">
<c:out value="${currentRowObject.DWMC}"/>
</a>
</display:column>
10) 由于该tag只有合计时,没有合计那一列,所以实现的时候以<display:footer>实现。
可以通过totalMap对象获取合计的数据,如totalMap.colomn1获取合计的第一列数值。
11) 标题头不显示<display:setProperty name="basic.show.header" value="false" />
12) 自己定制表头:<display:caption>
使用decorator:
<jsp:scriptlet>
org.displaytag.decorator.TotalTableDecorator totals =
new org.displaytag.decorator.TotalTableDecorator();
totals.setTotalLabel("合计");
totals.setSubtotalLabel("小计");
pageContext.setAttribute("totals", totals);
</jsp:scriptlet>
实例:
<display:caption>这是表标题</display:caption>
<display:table
name="${model.rowToColumnStatResult}" defaultsort="1"
class="simple" defaultorder="ascending" varTotals="totalMap">
<display:column property="GCWZ" title="部门"/>
<c:forEach items="${model.YList.YList}" var="yColumn">
<c:forEach items="${model.rowToColumnStatResult[0]}"
var="mapEntry">
<c:if test="${mapEntry.key == yColumn}">
<th>
<display:column property="${mapEntry.key}"
title="${mapEntry.key}"
format="{0,number,####.##}" total="true"/>
</th>
</c:if>
</c:forEach>
</c:forEach>
<display:column property="小计"
title="小计"
format="{0,number,####.##}" total="true"/>
<display:footer>
<tr>
<td>总计</td>
<c:forEach items="${model.YList.YColumn}" var="yColumn">
<td><fmt:formatNumber value="${totalMap[yColumn]}"
pattern="####.##"/>
</td>
</c:forEach>
</tr>
</display:footer>
</display:table>
另外一个例子:
<display:table name="${model.statResult}" class="simple"
varTotals="totalMap">
<display:column property="XMMC" title="项目名称" />
<display:column property="KSRQ" title="开始日期" />
<display:column property="FZRXM" title="负责人姓名" />
<display:column property="GKDW" title="挂靠单位" />
<display:column property="JFLY" title="经费来源" />
<display:column property="XMZJF" title="项目总经费" total="true" />
<display:column property="DNDKJF" title="当年到款经费" total="true"/>
<display:footer>
<tr><td colspan="5">总计</td>
<td>
<fmt:formatNumber value="${totalMap.column6}"
pattern="####.####" />
</td>
<td>
<fmt:formatNumber value="${totalMap.column7}"
pattern="####.####" />
</td>
</tr>
</display:footer>
</display:table>
总计某一列的方法:
${totalMap.column?} ?为该列号
colspan="5":表示这个单元格占5个单元格
项目名称 开始日期 负责人姓名 挂靠单位 经费来源 项目总经费 当年到款经费
531 400
151 10
-------------------------------------
总计 682 500