九九乘法表的輸出是一個很經典的循環輸出例子,從接觸編碼開始,就在不斷地學習。那麼在jstl標籤庫中怎麼進行這個例子輸出呢?
在jstl中用到了<c:forEach>迭代標籤,首先了解一下forEach標籤吧:forEach包含的屬性:var,items,varStatus,begin,end,step
<c:forEach [var=”varName”]items=”collection” [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]></c:forEach>
詳細解釋:
[]包括的內容是可有可無的,沒有[]包含的表示必須要寫的屬性
var:不支持el表達式,是String字符串類型,作用是決定是否處理標籤體內容;
items:支持el表達式,可以是數組、字符串和各種集合類型,放置將要迭代的集合對象
varStatus:不支持el表達式,是String字符串類型,表示迭代的狀態,可以獲得迭代自身的信息
begin:支持el表達式,int型,如果指定begin屬性,就從item下表爲begin的位置開始迭代,相當於for循環裏的=賦值;若沒有指定begin屬性,就從0下標開始迭代
end:支持el表達式,int型,如果指定end屬性,就在item下標爲end的位置結束迭代,相當於for循環裏的<=;若沒有指定end屬性,將迭代到item最後位置
step:支持el表達式,int型,默認的步長是1,相當於for循環裏的++。如果指定step屬性值,就把指定值作爲步長
java中的九九乘法表輸出代碼:
for (int i = 1; i <= 9; i++) {
for(int j=1;j<=i;j++){
int k=i*j;
System.out.print(j+"*"+i+"="+k+"\t");
}
System.out.println("\n");
}
用jstl標籤寫的代碼,並輸入表格:
<table width="60%">
<!-- 循環輸出1~9之間的數字 -->
<!-- varStatus判斷迭代次數 -->
<c:forEach var="itemi"begin="1" end="9"varStatus="status">
<tr>
<c:forEach var="itemj"begin="1" end="${itemi}"varStatus="status">
<td>
<c:out value="${itemj}*${itemi}=${itemi*itemj}"></c:out>
</td>
</c:forEach>
</tr>
</c:forEach>
</table>
添加顏色間隔的css文件:
<!-- 設置間隔顏色 -->
<style type="text/css">
.even {
background-color: red
}
.odd {
background-color: yellow
}
<!--鼠標移動到時,顯示的顏色-->
tr:hover {
background-color: blue
}
</style>
將css代碼添加到表格中:
<!--三目運算符的使用,迭代偶數次時,該行顯示odd的顏色;迭代奇數次時,該行顯示even的顏色-->
<tr class="${status.count%2==0?'odd':'even'}">
運行的效果圖: