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