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

來源:互聯網
上載者:User
流程式控制制
讓我們轉為討論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>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.