上面章節主要講解<c:forEach>標籤,下面講解其它標籤 html
forTokens標籤與forEach標籤相似,獨有begin、end、step、items等屬性,能夠循環,不一樣之處是forTokens標籤裏面是字符串 java
<c:forTokens items="Jane,Toni,Andy,hedix" delims="," var="item" varStatus="status" begin="1" end="4" step="2"> <tr> <td>${status.index}</td> <td>${item}</td> </tr> </c:forTokens>
輸出結果能夠本身親手試試看,下面解析一下各個屬性的做用,delim是相似分割點的意思,varStatus遍歷對象的信息,其中${status.index}的輸出當前對象是第幾個 session
一個頁面有時候須要統計一些數字,好比當前用戶登陸次數,當前頁面總訪問人數等 app
set標籤能夠幫我完成這些功能,它總共有五個屬性(var、value、scope、target和poperty) 網站
1) spa
<c:set var="totalCount" value="${totalCount+1}" scope="application"></c:set> <c:set var="count" value="${count+1}" scope="session"></c:set> <tr> <td>網站總訪問數:${totalCount}</td> <td>其中您的訪問次數:${count}</td> </tr>下面解析一下屬性意義:var就是set的對象,value就是set進去的值,scope聲明該對象的做用範圍
2) code
<% request.setAttribute("person",new com.bean.Person()); request.setAttribute("map", new java.util.HashMap()); %> <c:set target="${person} property="name" value="${param.name}"></c:set> <c:set var="${map} property="name" value="${param.name}"></c:set> <tr> <td>${person.name}</td> <td>${map.name}</td> </tr>信息的朋友會問,爲何下面的買看見var屬性呢?問的很好
實際上var和target屬性是相互排斥和互助的,也就是說有var就沒target,各有各的做用,下面說說它們的不一樣之處 htm
var不能接受EL表達式的,但target必須接受EL表達式 對象
target只能用來操做javaBean或者Map rem
target通常和property組合使用,其中property對應的是target對象的屬性,若是target是Map,則porperty對應的是key值
請注意(target是不該許對象爲null的)
var和target不能同時使用在一個標籤裏面
remove標籤的做用和set標籤的做用恰好相反,remove有兩個屬性,var和scope,同set同樣var屬性只接受字符串不接受EL表達式
<% request.setAttribute("test", new java.util.HashMap()); %> <c:remove var="test ></c:remove> <tr> <td>${test ==null ?'test對象已經被刪除':'test對象沒有被刪除'}</td> </tr>其中當test是的空的時候,不會報錯
你們一看到這個標籤應該能纔出來是捕捉異常的,確實是這樣的,catch只有var一個屬性
<c:catch var="test > <c:set target="${person}" property="name" value="some value"></c:set> </c:catch> <tr> <td><c:if test="${test!=null}">程序報錯,錯誤內容:${test.class.name}</c:if></td> </tr>