它包含兩部分:標籤庫 和表達式語言(Expression Language,EL) 。標籤庫目前支持如下4種標籤:
XML processing----支持xml文檔的處理。前綴是x,可以參照http://java.sun.com/jstl/xml
I18N capable formatting----支持對JSP頁面的國際化。前綴是fmt,可以參照http://java.sun.com/jstl/fmt
Database access(SQL)----支持JSP對數據庫的操作。前綴是sql,可以參照http://java.sun.com/jstl/sql
表達式語言
<some:tag value="${expr}" />
例如:
<c:out value="${username}" />
2、value屬性包含一個或多個屬性,這些屬性被文本分割或圍繞。
<some:tag value="some${expr}${expr}text${expr}" />
3、value屬性僅僅包含文本。
<some:tag value="some text" />
${user.username}或者${user["username"]},兩種意義相同。
${empty param.username}
如,${param.firstname == null}。
==或eq-----相等檢查
!=或ne-----不等檢查
<或lt-----小於檢查
>或 gt-----大於檢查
<=或le-----小於等於檢查
>=或ge-----大於等於檢查
value----輸出信息,可以使EL表達式或常量,是個必須有的屬性。
default----value爲空時顯示的信息
escapeXml---- 爲true時避開特殊的xml字符集
實例如下:
<c:out value="${user.username}" default="guest" />
application(ServletContext)中取,如果都沒有就不顯示。
value----輸出信息,可以使EL表達式或常量
target----需要修改屬性的變量名,一般是JavaBean的實 例
property----需要修改的JavaBean屬性,如果target指定了,這個必須指定
var----需要保存信息的變量
scope---- 保存信息變量的範圍
實例如下:
<c:set value="${test.testinfo}" var="test2" scope="session" />
var----需要保存信息的變量,這個是必須指定的
scope----保存信息變量的範圍
實例如下:
<c:remove var="test2" scope="session" />
test----需要評價的條件,相當於if中的條件,是個必須指定的
var----需要保存結果的變量名
scope---- 保存條件結果的變量範圍
c:choose標籤
test----需要評價的條件,是個必須指定的
c:otherwise標籤
<c:if test="${user.wealthy}">
user.wealthy is true.
</c:if>
<c:when test="${user.generous}">
user.generous is true.
</c:when>
<c:when test="${user.stringy}">
user.stringy is true.
</c:when>
<c:otherwise>
user.generous and user.stringy are false.
</c:otherwise>
</c:choose>
如果 user.stringy的值爲true,則顯示“user.stringy is true.”;
其他所有情況(即user.generous 的值跟user.stringy的值都不爲true)全部顯示“user.generous and user.stringy are
注意:JSTL中沒有形如if...else...的條件語句,所以只能用,和標籤來共同完成。
3、循環控制標籤
items----進行循環的項目
begin----開始條件,默認值是0
end----結束條件,默認值是集合中的 最後一個項目
step----步長,默認值是1
var----代表當前項目的變量名
varStatus----顯示循環狀態的變 量
實例如下:
<c:forEach items="${vectors}" var="vector">
<c:out value="${vector}"/>
</c:forEach>
上面的等價於:
for(int i=0;i<vectors.size();i++){
out.println(vectors.get(i));
}
成任意的實現了java.util.Collection接口的對象。
count=<c:out value="${i}"/><br>
</c:forEach>
count=0
count=1
.....
count=10
c:forTokens標籤
delims---分割符,是個必須的屬性
實例如下:
<c:forTokens items="a:b:c:d" delims=":" var="token">
<c:out value="${token}"/>
</forTokens>
url----需要導入頁面的url,是個必須的屬性
context----/後跟本地Web應用程序的名字,默認是當前應用 程序
charEncoding----用於導入數據的字符集,默認是ISO-8859-1
var----接受導入文本的變量名,默認是 page
scope----接受導入文本的變量的範圍
varReader----接受導入文本的java.io.Reader變量名
varStatus---- 顯示循環狀態的變量
c:url標籤---輸出一個url地址
url----url地址,是個必須的屬性
context----/後跟本地Web應用程序的名字,默認是當前應用程序
charEncoding---- 用於導入數據的字符集,默認是ISO-8859-1
var----接受處理過的url變量名,該變量存儲url,默認是輸出到頁
scope---- 存儲url的變量名的範圍,默認是page
實例如下:
<c:import url="http://www.abc.com/abc.js " var="newsfeed" />
c:redirect標籤---將請求重定向到另一個頁面
url----url地址,是個必須的屬性
context----/後跟本地Web應用程序的名字,默認是當前應用程序
實例如下:
<c:redirect url="http://www.abc.com/login.jsp " />
c:param標籤---給一個重定向或包含頁面傳遞參數。
name----在request參數中設置的變量名,是個必須屬性
value----在request參數中設置的變量值
實例如下:
<c:redirect url="login.jsp">
<c:param name="id" value="abc">
</c:redirect>
4、允許JSP設計工具與Web應用程序開發的進一步集成。