c:foreach從第二個元素開始遍歷 相關問題
阿新 • • 發佈:2019-02-11
今天遇到個關於Jstl 的<c:foreach></c:foreach>標籤的使用問題,本來是想要通過jstl實現 從集合的第二個元素遍歷資料,
常規的做法應該是這樣,也比較易與理解,預設從下標為0 開始遍歷 ,begin屬性 表示遍歷開始的下標位置,要從第二位開始,自然要設為 1,效果實現,程式碼及 效果如下圖
<select class="form-control select-opt" id="a_company">
<option value="0">請選擇...</option>
<c:forEach begin="1" items="${companys }" var="com">
<option>${com.comName }</option>
</c:forEach>
</select>
測試資料中,一共有五個資料,從第二個元素開始遍歷,OK,效果實現。此外在網上看到另外一種寫法,還不是很理解
<select class="form-control select-opt" id="a_company"> <option value="0">請選擇...</option> <c:forEach begin="1" end="${companys.size() - 1 }" var="i"> <option>${companys[i].comName }</option> </c:forEach> </select>
此段程式碼同樣實現了 上圖的效果(從第二個元素開始遍歷),個人是這麼理解的,
var 通常情況下宣告 的是被遍歷的集合,相當於取了別名,而這段程式碼 沒有items屬性存在,
所有這個var宣告的是元素下標,相當於:
for(var i = 1 , 0< i < list.size() , i++){
<option>${ list [i] }.name</option>
}
小弟初入開發,如有理解不當,望各位能夠指出