第五章_JSTL

來源:互聯網
上載者:User

標籤:jstl

5.1、下載JSTL

http://jstl.java.net

 

5.2、JSTL類庫

類別

下屬功能

URI

首碼

 

Core

變數支援

 

http://java.sun.com/jsp/jstl/core

 

c

流向控制

URL管理

雜項

 

XML

Core

 

http://java.sun.com/jsp/jstl/xml

 

x

流向控制

轉換

 

I18n

語言環境

 

http://java.sun.com/jsp/jstl/fmt

 

fmt

訊息格式化

數字和日期格式化

資料庫

SQL

http://java.sun.com/jsp/jstl/sql

sql

 

功能

集合長度

http://java.sun.com/jsp/jstl/functions

 

fn

字串操作

 

為了在JSP頁面中使用JSTL類庫,必須以下列格式使用taglib指令:

<%@ taglib uri=”uri” prefix=”prefix”%>

例如,為了使用Core類庫,必須在JSP頁面開頭處這樣聲明:

<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c”%>

 

5.3、通用動作指令5.3.1、out標籤

Out標籤對錶達式進行運算,並將結果輸出到當前的JspWriter。Out的文法有兩種形式:

<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”] />

<c:out value=”value” [escapeXml=”{true|false}”]>

Default value

</c:out>

 

5.3.2、set標籤

利用set標籤可以完成以下工作:

1、建立一個字串和引用該字串的一個限域變數。

2、建立一個限域變數,並引用已經存在的某一個限域變數。

3、設定限域對象的屬性。

如果利用set建立限域變數,那麼處於該標籤之後的整個jsp頁面將都可以使用該變數。

Set標籤的文法有4種形式。第一種形式用來建立一個限域變數,在該變數的value屬性中可以指定要建立的字串,或者現有的限域對象。

No1、

<c:set value=”value” var=”varName” [scope=”{page|request|session|application}”] />

No2、

<c:set value=”value” var=”varName” [scope=”{page|request|session|application}”] >

Body content

</c:set>

No3、設定限域對象的屬性值。Target屬性指定限域對象,property屬性指定限域對象的屬性。要賦給該屬性的值通過value屬性進行設定:

<c:set target=”target” property=”propertyName” value=”value” />

例如,下面的set標籤是將字串Tokyo賦給限域對象address的city屬性:

<c:set target=”${address}” property=”city” value=”Tokyo” />

No4、值是做為主體內容傳遞的:

<c:set target=”target” property=”propertyName”>

Body content

</c:set>

 

5.3.3、remove標籤

利用remove標籤刪除限域變數,文法如下:

<c:remove var=”varName” [scope=”{page|request|session|application}”] />

注意:限域變數引用的對象並沒有被刪除。因此,如果另一個限域對象也在引用這個對象,那麼仍然可以通過另外這個限域對象來訪問該對象。

 

5.4、條件式動作指令

在JSTL中有4個標籤可以執行條件式動作指令:if、choose、when和otherwise。

 

5.4.1、if標籤

<c:if test=”testCondition” var=”varName” [scope=”{page|request|session|application}” />

或者

<c:if test=”testCondition” [var=”varName”] [scope=”{page|request|session|application}”>

Body content

</c:if>

 

屬性

類型

描述

Test+

Boolean

決定是否應該處理某些現有主體內容的測試內容

Var

String

引用測試條件的限域變數名稱,var的類型為boolean

Scope

String

用var設定的限域變數的範圍

 

5.4.2、choose、when和otherwise標籤

Choose和when標籤的作用與java中的switch和case關鍵字相似,也就是說,它們為互斥的條件式執行提供相關內容。Choose標籤內部必須嵌有一個或多個when標籤,每個when標籤代表可以運行運算和處理的一種情況。Otherwise標籤用於預設的條件代碼塊,如果所有when標籤的測試條件運算結果都不為true,就會執行該代碼塊。如果有otherwise標籤,它必須放在最後一個when標籤之後。

例如:

<c:choose>

<c:when test=”${param.status==’full’}”>

You atr a full member

</c:when>

<c:when test=”${param.status==’student’}”>

You are a student memeber

</c:when>

<c:otherwise>

Please register

</c:otherwise>

</c:choose>

 

5.5、iterator動作指令

兩個可以執行iterator動作指令的標籤:forEach和forTokens。

 

5.5.1、forEach標籤

forEach的文法有兩種形式,第一種是將body內容重複一定的次數:

<c:forEach [var=”varName”] begin=”begin” end=”end” step=”step”>

Body content

<c:forEach>

第二種形式用於迭代一個對象集合:

<c:forEach items=”collection” [var=”varName”] [varStatus=”varStatusName”]

[begin=”begin”] [end=”end”] [step=”step”]>

Body content

</c:forEach>

屬性

類型

描述

Var

String

引用當前迭代項目的限域變數名稱

Items+

支援的任何類型

要迭代的對象集合

varStatus

String

儲存迭代狀態的限域變數名稱,它的值類型為javax.servlet.jsp.jstl.core.LoopTagStatus

Begin+

Int

如果指定了items,那麼迭代將從處於指定索引的項開始,該集合中的第一個項索引為0。如果沒有指定items,迭代將從該值設定的索引開始。如有指定,begin的值必須大於或者等於0。

End+

Int

如果指定了items,那麼迭代將結束於處於指定索引的項;如果沒有指定的items,那麼當索引到達指定值時,迭代結束。

Step+

Int

 

步長,迭代會從集合的第一個step項開始,根據step步長逐個地進行,如果有step屬性,那麼它的值必須大於或者等於1。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.