JSTL標籤使用說明

來源:互聯網
上載者:User

標籤:style   java   color   使用   資料   os   

JSTL標籤使用說明1.EL語言介紹

EL語言是JSTL輸出(輸入)一個JAVA運算式的表示形式。

在JSTL中,EL語言只能在屬性值中使用。EL語言只能通過建立運算式${exp1}來進行調用。在屬性值中使用運算式有三種方式。

1、 value屬性包含一個運算式

在這種情況下,運算式值被計算出來並根據類型轉換規則賦值給value屬性。比如:中的${username}就是一個EL,它相當於JSP語句<%=request.getAttribute(“username”)%>或<%=session.getAttribute(“username”)%>

2、 value屬性包含一個或多個屬性,這些屬性被文本分割或圍繞

在這種情況下,運算式從左至右進行計算,並將結果轉換為字串型(根據類型轉換規則),並將結果賦值給value屬性

3、 value屬性僅僅包含文本

在這種情況下,字串型屬性value將根據類型轉換規則轉換為標籤所希望的類型。

2.EL語言的操作符

取得某個對象或集合中的屬性值

為了獲得集合中的屬性,EL支援以下兩種操作

1. 使用.操作符來獲得有名字的屬性。例如運算式${user.username}表明對象user的username屬性

2. 使用[]操作符來獲得有名字或按數字排列的屬性。

運算式${user["username"]}和運算式${user. username }含義相同

運算式${row[0]} 表明row集合的第一個條目。

在這裡user是一個類的對象,它的屬性username必須符合標準JavaBean的規範,即必須為username屬性定義相應的getter、setter方法。

3.Empty操作符(空值檢查)

使用empty操作符來決定對象、集合或字串變數是否為空白或null。例如

${empty param.username}

如果request的參數列表中的username值為null,則運算式的值為true。

EL也可以直接使用比較操作符與null進行比較。如${param.firstname == null}。

比較操作符 描述
== 或 eq 相等檢查
!= 或 ne 不等檢查
< 或 lt 小於檢查
> 或 gt 大於檢查
<= 或 le 小於等於檢查
>= 或 ge 大於等於檢查
4.Core通用標籤

c:out 標籤用於在JSP中顯示資料,它有如下屬性

屬 性 描 述 是否必須 預設值
value 輸出的資訊,可以是EL運算式或常量 是 無
default value為空白時顯示資訊 否 無
escapeXml 為true則避開特殊的xml字元集 否 true

例子: 您的使用者名稱是:

顯示使用者的使用者名稱,如為空白則顯示guest,指定從session中擷取username的值顯示;

顯示username的值,預設是從request(page)中取,如果request中沒有名為username的對象則從session中取,session中沒有則從application(servletContext)中取,如果沒有取到任何值則不顯示。

<c:out value="${session.username}" default="guest" escapeXml="false"/>

c:set 標籤用於儲存資料,它有如下屬性

屬 性 描 述 是否必須 預設值
value 要儲存的資訊,可以是EL運算式或常量 否 無
target 需要修改屬性的變數名,一般為javabean的執行個體 否 無
property 需要修改的javabean屬性 否 無
var 需要儲存資訊的變數 否 無
scope 儲存資訊的變數的範圍 否 page

如果指定了target屬性, 那麼property屬性也必須指定。

例子:

將test.testinfo的值儲存到session的test2中,其中test是一個javabean的執行個體,testinfo是test對象的屬性。

<c:set var="test2" scope="session" target="test" property="testinfo"/>, 或者:

<c:set var="test2" scope="session" value="${test.testinfo}"/>

將對象cust.address的city屬性值儲存到變數city中

<c:set var="city" value="${cust.address.city}"/>

c:remove 標籤用於刪除資料,它有如下屬性

屬 性 描 述 是否必須 預設值
var 要刪除的變數 是 無
scope 被刪除變數的範圍 否 所有範圍,包括page、request、session、application等

例子:

從session中刪除test2變數。

<c:remove var="city" scope="request"/>

5.流量控制標籤

c:if 標籤有如下屬性

屬 性 描 述 是否必須 預設值
test 需要評價的條件,相當於if (...){}語句中的條件 是 無
var 要求儲存條件結果的變數名 否 無
scope 儲存條件結果的變數範圍 否 page

c:choose,c:when,c:otherwise 組合(如果...如果...如果...其他...)標籤

c:choose 這個標籤不接受任何屬性

c:when 標籤有以下屬性

屬 性 描 述 是否必須 預設值
test 需要評價的條件 是 無

c:otherwise 這個標籤同樣不接受任何屬性

例子:

只有當條件user.generous傳回值是true時,才顯示user.generous

只有當條件user.stingy傳回值是true時,才顯示user.stingy

其它所有的情況(即user.generous和user.stingy的值都不為true)全部顯示user.generous and user.stingy.

<c:choose>

<c:when test="${user.generous}"><c:out value="${user.generous}"/></c:when>

<c:when test="${user.stingy}"><c:out value="${user.stingy}"/></c:when>

<c:otherwise><c:out value="${user.generous} and {user.stingy}"/></otherwise>

</c:choose>

由於JSTL沒有形如if (){…} else {…}的條件陳述式,所以這種形式的語句只能用、和標籤共同來完成了。

6.迴圈控制標籤

c:forEach 標籤用於通用資料,它有以下屬性

屬 性 描 述 是否必須 預設值
items 進行迴圈的項目(是一個集合) 否 無
begin 開始條件 否 0
end 結束條件 否 集合中的最後一個項目
step 步長 否 1
var 代表當前項目的變數名 否 無
varStatus 顯示迴圈狀態的變數 否 無

varStatus 變數的其他屬性:

.index 索引號,從 0 開始計算

.count 量值,從 1 開始計算

.first 判斷當前對象是不是集合中第一個對象

.last 判斷當前對象是不是集合中最後一個對象

聯繫我們

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