JSTL詳解(二)
9.2.3? EL
表達(dá)式的操作符
EL
表達(dá)式中還有許多操作符可以幫助完成各種所需的操作,之前的示例中“
.
”、“
[]
”就是其中的兩個(gè),下面將用表
9.1
來(lái)展示所有操作符及它們各自的功能。
表
9.1? EL
表達(dá)式的操作符
操作符
|
功能和作用
|
. |
訪問(wèn)一個(gè)
bean
屬性或者
Map entry |
[] |
訪問(wèn)一個(gè)數(shù)組或者鏈表元素
|
() |
對(duì)子表達(dá)式分組,用來(lái)改變賦值順序
|
? : |
條件語(yǔ)句,比如:條件
?ifTrue:ifFalse
如果條件為真,表達(dá)式值為前者,反之為后者
|
+ |
數(shù)學(xué)運(yùn)算符,加操作
|
- |
數(shù)學(xué)運(yùn)算符,減操作或者對(duì)一個(gè)值取反
|
* |
數(shù)學(xué)運(yùn)算符,乘操作
|
/
或
div |
數(shù)學(xué)運(yùn)算符,除操作
|
%
或
mod |
數(shù)學(xué)運(yùn)算符,模操作
(
取余
) |
==
或
eq |
邏輯運(yùn)算符,判斷符號(hào)左右兩端是否相等,如果相等返回
true
,否則返回
false |
!=
或
ne |
邏輯運(yùn)算符,判斷符號(hào)左右兩端是否不相等,如果不相等返回
true
,否則返回
false |
<
或
lt |
邏輯運(yùn)算符,判斷符號(hào)左邊是否小于右邊,如果小于返回
true
,否則返回
false |
>
或
gt |
邏輯運(yùn)算符,判斷符號(hào)左邊是否大于右邊,如果大于返回
true
,否則返回
false |
<=
或
le |
邏輯運(yùn)算符,判斷符號(hào)左邊是否 |
>=
或
ge |
邏輯運(yùn)算符,判斷 |
&&
或
and |
邏輯運(yùn)算符,與操作賦。如果左右兩邊同為
true
返回
true
,否則返回
false |
||
或
or |
邏輯運(yùn)算符,或操作賦。如果左右兩邊有任何一邊為
true
返回
true
,否則返回
false |
!
或
not |
邏輯運(yùn)算符,非操作賦。如果對(duì)
true
取運(yùn)算返回
false
,否則返回
true |
empty |
用來(lái)對(duì)一個(gè)空變量值進(jìn)行判斷
: null
、一個(gè)空
String
、空數(shù)組、
空
Map
、沒(méi)有條目的
Collection
集合
|
func(args) |
調(diào)用方法
, func
是方法名,
args
是參數(shù),可以沒(méi)有,或者有一個(gè)、多個(gè)參數(shù)
.
參數(shù)間用逗號(hào)隔開(kāi)
|
這些操作符都是極其有用的,下面通過(guò)幾個(gè)示例來(lái)演示它們的使用方法:
例
9.4
:幾組
${pageScope.sampleValue + 12} <br>? ????????? //
顯示
12
${(pageScope.sampleValue + 12)/3} <br>? ??? //
顯示
4.0
${(pageScope.sampleValue + 12) /3==4} <br> ??????? //
顯示
true
${(pageScope.sampleValue + 12) /3>=5} <br> ??????? //
顯示
false
<input type="text" name="sample1" value="${pageScope.sampleValue + 10}"> //
顯示值為
10
的
Text
控件
可以看到,對(duì)于這些示例,程序設(shè)計(jì)者完全無(wú)需管理它們的類(lèi)型轉(zhuǎn)換,在表達(dá)式內(nèi)部都已經(jīng)處理了。有了
EL
表達(dá)式,在
JSP
頁(yè)面的編程變得更靈活,也更容易。
9.2.3? JSTL
標(biāo)簽庫(kù)介紹
??
在
JSTL1.1
中有以下這些標(biāo)簽庫(kù)是被支持的:
Core
標(biāo)簽庫(kù)、
XML processing
標(biāo)簽庫(kù)、
I18N formatting
標(biāo)簽庫(kù)、
Database access
標(biāo)簽庫(kù)、
Functions
標(biāo)簽庫(kù)。對(duì)應(yīng)的標(biāo)識(shí)符見(jiàn)表
9.2
所示:
表
9.2
標(biāo)簽庫(kù)的
標(biāo)簽庫(kù)
|
URI |
前綴
|
Core |
http://java.sun.com/jsp/jstl/core |
c |
XML processing |
http://java.sun.com/jsp/jstl/xml |
x |
I18N formatting |
http://java.sun.com/jsp/jstl/fmt |
fmt |
Database access |
http://java.sun.com/jsp/jstl/sql |
sql |
Functions |
http://java.sun.com/jsp/jstl/functions |
fn |
下面看例
9.5
,簡(jiǎn)單使用標(biāo)簽庫(kù)的示例。
例
9.5
:簡(jiǎn)單
JSTL
標(biāo)簽庫(kù)示例
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? <body>
??? <c:forEach var="i" begin="1" end="10" step="1">
????? ${i}
????? <br />
??? </c:forEach>
? </body>
</html>
在該示例的
JSP
頁(yè)面中聲明了將使用
Core
標(biāo)簽庫(kù),它的
URI
為“
http://java.sun.com/jsp/jstl/core
”,前綴為“
c
”。之后,頁(yè)面中
<c:forEach>
標(biāo)簽就是使用了
JSTL
的標(biāo)簽進(jìn)行了工作。對(duì)于該標(biāo)簽的功能,這里暫時(shí)不作具體講解,只是讓讀者能夠有個(gè)簡(jiǎn)單的概念,了解怎樣定義和使用標(biāo)簽庫(kù)。
9.3? JSTL Core
標(biāo)簽庫(kù)
Core
標(biāo)簽庫(kù),又被稱(chēng)為核心標(biāo)簽庫(kù),該標(biāo)簽庫(kù)的工作是對(duì)于
JSP
頁(yè)面一般處理的封裝。在該標(biāo)簽庫(kù)中的標(biāo)簽一共有
14
個(gè),被分為了四類(lèi),分別是:
q????????
多用途核心標(biāo)簽:
<c:out>
、
<c:set>
、
<c:remove>
、
<c:catch>
。
q????????
條件控制標(biāo)簽:
<c:if>
、
<c:choose>
、
<c:when>
、
<c:otherwise>
。
q????????
循環(huán)控制標(biāo)簽:
<c:forEach>
、
<c:forTokens>
。
q????????
URL
相關(guān)標(biāo)簽:
<c:import>
、
<c:url>
、
<c:redirect>
、
<c:param>
。
以下是各個(gè)標(biāo)簽的用途和屬性以及簡(jiǎn)單示例。
9.3.1?
用于顯示的
<c:out>
標(biāo)簽
<c:out>
標(biāo)簽是一個(gè)最常用的標(biāo)簽,用于在
JSP
中顯示數(shù)據(jù)。它的屬性和描述如表
9.3
所示:
表
9.3
<c:out>
標(biāo)簽屬性和說(shuō)明
屬性
|
描述
|
value |
輸出到頁(yè)面的數(shù)據(jù),可以是
EL
表達(dá)式或常量(必須)
|
default |
當(dāng)
value
為
null
時(shí)顯示的數(shù)據(jù)(可選)
|
escapeXml |
當(dāng)設(shè)置為
true
時(shí)會(huì)主動(dòng)更換特殊字符,比如“
<,>,&
”(可選,默認(rèn)為
true
)
|
在
JSTL1.0
的時(shí)候,在頁(yè)面顯示數(shù)據(jù)必須使用
<c:out>
來(lái)進(jìn)行。然而,在
JSTL1.1
中,由于
JSP2.0
規(guī)范已經(jīng)默認(rèn)支持了
EL
<c:out value="${sessionScope.anyValue}" default="no value" escapeXml="false"/>
該示例將從
Session
查找名為“
anyValue
”的
posted on 2007-01-18 10:02 nbt 閱讀(5879) 評(píng)論(3) 編輯 收藏 所屬分類(lèi): Servele&JSP和js