1. 程式人生 > >c:foreach從第二個元素開始遍歷 相關問題

c:foreach從第二個元素開始遍歷 相關問題

今天遇到個關於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>

}

小弟初入開發,如有理解不當,望各位能夠指出