程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSTL改進JSP來簡化網頁的實現過程(3)

JSTL改進JSP來簡化網頁的實現過程(3)

編輯:關於JSP

流程控制
讓我們轉為討論JSTL的流程控制和條件標記。如果你已經用任何一種語言使用了條件和流程控制語句,理論上這裡沒什麼新鮮的東西。
c:if動作處理簡單條件語句的測試。計算測試屬性中的Boolean表達式的值,如果表達式為真的話,計算體的內容。在下面的動作中,我們也說明了備選項var屬性。為了以後的使用,var屬性保存測試結果在頁(如果沒有指定其他scope屬性的話)中。
<c:if test="${status.totalVisits == 1000000}" var="visits">
You are the millionth visitor to our site! Congratulations!
</c:if>
下面我們展示了用c:choose、 c:when、 和 c:otherwise交換邏輯的JSTL的支持。一組c:when動作可能包括在一個備選的標記內,如果在c:when塊中任何表達式計算值為真的話,就不用計算c:choose動作內的測試。如果c:when塊中沒有一個測試計算值為真的時候:如果出現c:otherwise動作內容時,則計算c:otherwise動作的內容:
<c:choose>
<c:when test="${item.type == book }">
...
</c:when>
<c:when test="${item.type == electronics }">
...
</c:when>
<c:when test="${item.type == toy }">
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:choose>
c:foreach動作提供一個容易的方法來迭代一個集合的元素。如果你想只迭代集合的一部分的話,你可以分別用begin、 end、 和 step屬性指定起點、終點和一個遞增值。在下面的例子中,我們在變量customerNames中迭代一個集合的內容;在每個循環中,下一個元素輸入到變量名內並在c:foreach動作的體內計算:
<table>
<c:forEach var="name" items="${customerNames}">
<tr><td><c:out value="${name}"/></td></tr>
</c:forEach>
</table>
記得Java的StringTokenizer類嗎?有了c:forTokens動作,你可以用JSTL獲得類似的功能。這個程序片斷可使用在delims屬性中定義的定界符通過items String屬性中的條目迭代。注意,items 屬性不必是一個字符直接量;它可以是任何有效的EL表達式:
<table>
<c:forTokens items="47,52,53,55,46,22,16,2" delim="," var="dailyPrice">
<tr><td><c:out value="${dailyPrice}"/></td></tr>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved