JSTL核心標籤

本文引用於-21天學通javaweb開發,僅用於學習交流。

jsp頁面要使用格式化標籤,必須使用<%@ taglib %>指令,指定格式化標籤。代碼如下

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

1.<c:set>標籤:

jstl提供了能方便定義變量的標籤<c:set>,能夠將變量存儲在JSP範圍中或JavaBean屬性中.其語法分爲以下5種.

1) 指定變量名及變量值,不指定scope(範圍)

<c:set var="username" value="value"></c:set>

2)將value的值儲存到範圍scope的變量中.

<c:set var-="username" value="value" scope="page | request | session | application "></c:set>

3)將本體內容的數據存儲至範圍爲scope的變量中。

<c:set var="varname" scope="page | request | session | application ">本體內容</c:set>

4)將value值儲存到target對象的屬性中。

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

5)將本體內容的數據存儲到target對象的屬性中。

<c:set target="target" property="propertyName">本體內容</c:set>

2.<c:out>標籤

<c:out>用來顯示數據的內容,類似與<%= %>,功能比較強大.使用<c:out>輸出內容比使用Scriptlests代碼簡單,利於頁面維護.其語法如下:

1)通過在<c:out>中的value屬性指定需要顯示的值。

<c:out value="value">

2)通過escapeXml屬性設置是否將value中的內容按照原樣輸出.因爲<c:out>默認將< > 、 “ 轉換成&lt &gt &#039 &#034 &amp 。如果不想轉換,需指定爲false

<c:out value ="value” escapeXml=“true | false”/>

3)通過 default屬性來指定默認值,如果value的值爲null則顯示default的值.

<c:out  value="value"  default="No data">

4)通過本體內容來指定默認值。如果value的值爲null 則顯示default的值。

<c:out  value="value"  escapeXml="true| false">本體內容</c:out>

3.<c:remove>標籤

<c:remove>操作用來移除指定範圍的變量.其語法如下:

<c:remove  var="number"  scope="session">

var屬性指定待刪除變量的名稱,scope屬性是可選的,用來指定刪除變量的範圍,默認爲page.

4.<c:if>標籤

<c:if>標籤用來執行流程控制,功能與java中的if完全相同.其有兩種形式.一種沒有本體內容,一種有本體內容.

1)沒有本體內容的<c:if>標籤格式:

<c:if  test="testCondition"  var=" varName"  [scope="page | request | session | application"]    />

其中 test 屬性害死必須填寫的,表示進行判斷的表達式.屬性var定義變量,該變量存放判斷後的結果.scope表示var定義變量的存儲範圍.

2)有本體內容的<c:if>標籤格式:

<c:if  test = "testCondition"  var="varName"  [scope="page | request | session | application "] >本體內容</c:if>

其中 test 屬性必須填寫,表示進行判斷的表達式,屬性var定義變量,該變量存放判斷後的結果.scope表示var定義變量存儲的範圍.

5.<c:choose>  <c:when>  <c:otherwise>標籤

<c:if>標籤只能判斷一個表達式,而且無法指定如果表達式不成立的執行語句.JSTL提供了類似 if...else...的語句<c:choose>標籤

<c:choose>本身只能當做<c:when>和<c:otherwise>的標籤.其中可以有一個或多個<c:when>標籤.有零個或多個<c:otherwise>標籤.語法如下:

<c:choose>

..

<c:when  test="testCondition">**</c:when>

..

<c:otherwise>**</c:otherwise>

</c:choose>

6.<c:forEach>標籤

<c:forEach>標籤兩種語法格式.一種是遍歷集合對象的成員,一種用來使語句循環執行指定的次數.

1)<c:forEach>遍歷集合對象的成員,語法:

<c:forEach  [var="varname"]  items="collection"  [varStatus="varStatusName"]  [begin="begin"]  [end="end"]  [step="step"]>本體內容<c:forEach>

其中 var 用來存放現在指定到的成員. items 指被迭代的集合對象.  varStatus 用來存放現在指到的有關成員的信息. begin 表示開始位置(默認 0).

  end 表示結束位置. step 表示步長(默認 1)

2)<c:forEarch>指定語句執行次數,.語法:

<c:forEach  [var="varname"]  [varStatus="varStatusName"]  [begin="begin"]  [end="end"]  [step="step"]>本體內容</c:forEach>

注意:a) 如果指定了  begin  的屬性,那麼  begin  必須大於 0  ;b)如果指定了  end 屬性,那麼 end 屬性必須大於 begin ;c)如果指定了 step ,屬性大於0

<c:forEach>提供了 varStatus 屬性,主要用來存放現在指到的成員的相關信息.  如: varStatus="s" 會將信息存放在名稱爲s的屬性中.

varStatus的屬性說明;

屬行 類型 意義
index number 現在指到的成員的索引
count number 總共指到的成員的總數
first boolean 現在指到的成員是否爲第一個成員
last boolean 現在指到的成員是否爲最後一個成員

7.<c:forTokens>標籤

<c:forTokens>用來指定分隔符分隔字符串.語法:

<c:forTokens  [var="varname"]  items="stringofTokens"  delimes="delimiters"  [varStatus="varStatusName"]  [begin="begin"]  [end="end"]  [step="step"]>

本體內容<c:forTokens>

其中 var , varStatus , begin , end , step 屬性和<c:forEach>標籤中的用法一樣. 

items 屬性表示被分隔的字符串,  delims 屬性指定分隔符.

<c:forTokens>不僅可以僅有一個分隔符的字符串,也可以通過設定多個分隔符來分隔有多個分隔符的字符串,只需要設置多個分隔符就可以了,

8.<c:import>標籤

<c:import>可以把其他靜態或動態的文件包含到本身的JSP網頁中,它和JSP動作指令的<jsp:include>最大的差別在於:

<jsp:include>只能包含和自己在同一 web application的文件.

而<c:import>除了能夠包含和自己同一web application的文件外.也可以包含不同web application或其他網站的文件.其語法如下:

<c:import  url="url"  [context="context"]  [var="varname"]  [scope="page | request | session | application"]  [charEncoding="charEncoding"]>

本體內容</c:import>

或者:

<c:import  url="url"  [context="context"]  varReader="varReaderName"  [charEncoding="charEncoding"]>

本體內容</c:import>

<c:import>屬性說明

屬性 說明 類型 是否必需 默認值
url 被包含文件的地址 String
context 同一Web容器下,其他web站點必須以"/"開頭 String
var 存儲被包含文件的內容(以String類型存入) String
scope var變量的存儲範圍 String
charEncoding 被包含文件的編碼格式 String
varReader 存儲被包含文件的內容(以Reader類型存入) String

9.<c:param>標籤

<c:param>標籤用來傳遞參數,其包含兩個參數.,<c:param>包含兩個屬性name和value。

<c:param>屬性說明

屬性 說明 類型 是否必需 默認值
name 參數名稱 String
value 參數值 String 本體內容

在<c:import>標籤的本體內容中使用<c:param> 其功能主要是:可以將參數傳遞給被包含的文件

10.<c:url>標籤

<c:url>標籤用來生成URL,其語法分爲兩種,一種是不帶參數的,一種是帶參數的。語法:

1)不帶參數的:

<c:url  value="value"  [context="context"]  [var="varName"]  [scope="page | request | session | application"] />

2)帶參數:

<c:url  value="value"  [context="context"]  [var="varName"]  [scope="page | request | session | application"] >

<c:param>標籤

</c:url>

<c:url>屬性說明

屬性 說明 類型 是否必需 默認值
value 執行的URL String
context 同一Web容器下,其他web站點必須以"/"開頭 String
var 存儲被包含文件的內容(以String類型存入) String
scope var變量的存儲範圍 String page

11.<c:redirect>標籤

使用<c:redirect>可以從一個JSP頁面跳轉到其他的頁面上去,而且可以通過<c:param>標籤傳遞參數。一種是不帶參數,一種是帶參數

1)不帶參數的:

<c:redirect  url="url"  [context="context"] />

2)帶參數:

<c:redirect  uel="url"  [context="context"] > 

<c:param>

</c:redirect>

<c:redirect>屬性說明

屬性 說明 類型 是否必需 默認值
url 跳轉的目標地址 String
context 同一Web容器下,其他web站點必須以"/"開頭 String


如果有寫錯的地方,請指出。我會跟正的。謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章