1.<c:out>
庫(kù):Core(核心庫(kù))
URI:http://java.sun.com/jsp/jstl/core
前綴:c?
描述:<c:out>標(biāo)簽是一個(gè)最常用的標(biāo)簽,用于在?JSP?中顯示數(shù)據(jù)。它的作用是用來(lái)替代通過(guò)JSP內(nèi)?置對(duì)象out或者<%=%>標(biāo)簽來(lái)輸出對(duì)象的值。
語(yǔ)法:?
沒(méi)有Body時(shí)的語(yǔ)法?
<c:out?value=”value”?[escapeXml=”{true|false}”]?[default=”defaultValue”]/>?
有Body時(shí)的語(yǔ)法?
<c:out?value=”value”?[escapeXml=”{true|false}”]>?
這里是Body部分?
</c:out>??
屬性:
屬性名 | 描述 | 類型 | 是否接受動(dòng)態(tài)值 | 是否支持EL | 是否 必須 | 默認(rèn)值 | 說(shuō)明 |
value? | 需要顯示的值 | Object? | Y | Y | Y | 無(wú) | 用來(lái)定義需要求解的表達(dá)式。 |
escapeXml | 是否轉(zhuǎn)換特殊字符 | boolean | Y | Y | N | true | 用于指定在使用<c:out>標(biāo)記輸出諸如“<”、“>”、“’”、“””和“&”之類的字符(在?HTML?和?XML?中具有特殊意義)時(shí)是否應(yīng)該進(jìn)行轉(zhuǎn)義。如果將?escapeXml?設(shè)置為true,則會(huì)自動(dòng)的進(jìn)行編碼處理。 |
default | 缺省值 | Object | Y | Y | N | 無(wú) | 當(dāng)求解后的表達(dá)式為null或者String為空時(shí)將打印這個(gè)缺省值。 |
Null和錯(cuò)誤說(shuō)明
假若value為null,會(huì)顯示default的值;假若沒(méi)有設(shè)定default的值,則會(huì)顯示一個(gè)空的字符串。
實(shí)例:
------------------------------------------------------------------------------------------------------------------------------------------
Example1
<c:out?value="${sessionScope.anyValue}"?default="no?value"?escapeXml="false"/>
該示例將從Session查找名為“anyValue”的參數(shù),并顯示在頁(yè)面,若沒(méi)有找到則顯示“no?value”。
------------------------------------------------------------------------------------------------------------------------------------------
Example2
您的用戶名是:?<c:out?value=”${user.username}”?default=”guest”/>?
顯示用戶的用戶名,如為空則顯示guest
<c:out?value="${sessionScope.username}"/>?
指定從session中獲取username的值顯示;
<c:out?value="${username}"?/>?
顯示username的值,默認(rèn)是從request(page)中取,如果request中沒(méi)有名為username的對(duì)象則從session中取,session中沒(méi)有則從application(servletContext)中取,如果沒(méi)有取到任何值則不顯示
------------------------------------------------------------------------------------------------------------------------------------------
2.?<c:set>
庫(kù):Core(核心庫(kù))
URI:http://java.sun.com/jsp/jstl/core
前綴:c?
描述:<c:set>標(biāo)簽用于為變量或JavaBean中的變量屬性賦值的工作。這個(gè)標(biāo)簽用于在某個(gè)范圍(page、request、session、application等)中使用某個(gè)名字設(shè)定特定的值,或者設(shè)定某個(gè)已經(jīng)存在的javabean對(duì)象的屬性。他類似于<%request.setAttrbute("name","value");%>?
語(yǔ)法:?
語(yǔ)法1:?沒(méi)有body
將value的值存儲(chǔ)至范圍為scope的varName變量之中
<c:set?value="value"?var="varName"?[scope="{page|request|session|application}"]/>
語(yǔ)法2:?有body
將body內(nèi)容存儲(chǔ)至范圍為scope的varName變量之中
<c:set?value="value"?[scope="{page|request|session|application}"]>
?body.....
</c:set>
語(yǔ)法3:?將value的值存儲(chǔ)至target對(duì)象屬性中
<c:set?value="value"?target="target"?property="propertyNmae"/>
語(yǔ)法4:?將body內(nèi)容的數(shù)據(jù)存儲(chǔ)至target對(duì)象屬性中
<c:set?target="target"?property="propertyNmae">
?body....
</c:set>
??Null?和?錯(cuò)誤處理:
語(yǔ)法3和語(yǔ)法4會(huì)產(chǎn)生異常錯(cuò)誤,有以下兩種情況:
?.target?為null
?.target?不是java.util.Map或JavaBean對(duì)象
假若value為null時(shí):將由存儲(chǔ)變量改為移除變量
?.語(yǔ)法1:?由var和scope所定義的變量,將被移除
???.若scope已指定時(shí),則PageContext.removeAttribute(varName,scope);
???.若scope未指定時(shí),則PageContext.removeAttribute(varName);
?.語(yǔ)法3:?
???.假若target為Map時(shí),則Map.remove(property);
???.假若target為JavaBean時(shí),propertye指定的屬性為null
注意:?var和scope這兩個(gè)屬性不能使用表達(dá)式來(lái)表示,我們不能寫成?scope="${ourScope}"或var="${a}"
屬性:
屬性名 | 描述 | 類型 | 是否接受動(dòng)態(tài)值 | 是否支持EL | 是否 必須 | 默認(rèn)值 | 說(shuō)明 |
value | 要被存儲(chǔ)的值? | Object | true | Y | 否 | 無(wú)
| 被計(jì)算的表達(dá)式 |
var | 變量名 | String | false | N | 否 | 無(wú)
| 被導(dǎo)出的保存了value屬性計(jì)算結(jié)果的范圍變量的名稱 |
scope | 范圍 | String | true | N | 否 | page | var的JSP范圍 |
target | 目標(biāo)?對(duì)象 | String | true | Y | 否 | 無(wú)
| 要設(shè)置屬性的對(duì)象。必須是JavaBean對(duì)象或java.util.Map對(duì)象 |
property | 指定target對(duì)象屬性 | Object? | true | Y | 否 | 無(wú)
| 要設(shè)置的target對(duì)象的屬性的名稱 |
實(shí)例:
------------------------------------------------------------------------------------------------------------------------------------------
Example1
<c:set?value="this?is?andy"?var="oneString"/>
該示例將為名為“oneString”的變量賦值為“this?is?andy”,其作用范圍為page。
------------------------------------------------------------------------------------------------------------------------------------------
Example2
<c:set?target="${cust.address}"?property="city"?value="$"/>?
將對(duì)象cust.address的city屬性值保存到變量city中。
------------------------------------------------------------------------------------------------------------------------------------------
Example3
設(shè)置不同的屬性,并且指定它們的范圍:
<c:set?value="10000"?var="maxUser"?scope="application"/>
<c:set?value="20"?var="maxIdelTime"?scope="session"/>
<c:set?value="next.jsp"?var="nextPage"?scope="page"/>
------------------------------------------------------------------------------------------------------------------------------------------
Example4
<c:set?var="bid"?value="${param.bookId}"/>?
<jsp:setProperty?name="bookDB"?property="bookId"???value="${bid}"?/>
------------------------------------------------------------------------------------------------------------------------------------------
Example5
<%?Foo?foo?=?new?Foo();?pageContext.setAttribute("foo",?foo);?%>
<c:out?value="${foo.date}"/><br>?<c:set?target="${foo}"?property="day"?value="1"/>?
<c:out?value="${foo.date}"/>?
------------------------------------------------------------------------------------------------------------------------------------------
3.??<c:remove>
庫(kù):Core(核心庫(kù))
URI:http://java.sun.com/jsp/jstl/core
前綴:c?
描述:<c:remove>標(biāo)簽用于刪除存在于scope中的變量。類似于<%session.removeAttribute(“name”)%>?、
<%request.removeAttribute(“name”)%>...
語(yǔ)法:?
<c:remove?var="varName"?[scope="{page|request|session|application}"]/>
屬性:
屬性名 | 描述 | 類型 | 是否接受動(dòng)態(tài)值 | 是否支持EL | 是否 必須 | 默認(rèn)值 | 說(shuō)明 |
var | 變量名 | String | N | N | 是 | 無(wú) | 欲移除變量的名稱 |
scope | 范圍 | String | N | N | 否 | page | var變量的JSP范圍;?若沒(méi)有指定,默認(rèn)為全部查找 |
------------------------------------------------------------------------------------------------------------------------------------------
實(shí)例:
Example1
<c:remove?var="sampleValue"?scope="session"/>
${sessionScope.sampleValue}
------------------------------------------------------------------------------------------------------------------------------------------
Example2
<c:remove?var="username"?scope="session"/>
將username變量從session范圍移除。若我們不設(shè)定scope,則<c:remove>會(huì)移除所有范圍名稱為username
的數(shù)據(jù)。
------------------------------------------------------------------------------------------------------------------------------------------
4.<c:catch>
庫(kù):Core(核心庫(kù))
URI:http://java.sun.com/jsp/jstl/core
前綴:c?
描述:<c:catch>動(dòng)作用于捕獲JSP元素在其體中拋出的異常,從而提供細(xì)粒度的錯(cuò)誤控制,?此異常也可以保存為一個(gè)頁(yè)面作用域變量。當(dāng)錯(cuò)誤發(fā)生<c:catch>和</c:catch>之間時(shí),只有<c:catch>和</c:catch>之間的程序會(huì)被中止忽略,但整個(gè)網(wǎng)頁(yè)不會(huì)被中止。它包含一個(gè)var屬性,是一個(gè)描述異常的變量,該變量可選。若沒(méi)有var屬性的定義,那么僅僅捕捉異常而不做任何事情,若定義了var屬性,則可以利用var所定義的異常變量進(jìn)行判斷轉(zhuǎn)發(fā)到其他頁(yè)面或提示報(bào)錯(cuò)信息。
語(yǔ)法:?
<c:catch?[var="var"]>?
//可能發(fā)生錯(cuò)誤的部分
JSP?elements?
</c:catch>?
屬性:????
屬性名 | 描述 | 類型 | 是否接受動(dòng)態(tài)值 | 是否支持EL | 是否 必須 | 默認(rèn)值 | 說(shuō)明 |
var? | 變量名 | String? | N | N | N | 無(wú) | 用來(lái)存儲(chǔ)錯(cuò)誤信息的變量 |
實(shí)例:
------------------------------------------------------------------------------------------------------------------------------------------
Example1
<c:catch?var="importException">?
<fmt:parseDate?value="${param.empDate}"?dateStyle="short"?/>?
</c:catch>?
<c:if?test="${importException?!=?null}">?
<jsp:forward?page="input.jsp">?
<jsp:param?name="msg"?value="Invalid?date?format"?/>?
</jsp:forward>?
</c:if>?
------------------------------------------------------------------------------------------------------------------------------------------
Example2
<c:catch?var="err">
?????????${param.sampleSingleValue[9]?==?3}
</c:catch>?
${err}
當(dāng)“${param.sampleSingleValue[9]?==?3}”表達(dá)式有異常時(shí),可以從var屬性“err”得到異常的內(nèi)容,通常判斷“err”是否為null來(lái)決定錯(cuò)誤信息的提示。
------------------------------------------------------------------------------------------------------------------------------------------
5.<c:if>
庫(kù):Core(核心庫(kù))
URI:http://java.sun.com/jsp/jstl/core
前綴:c?
描述:<c:if>動(dòng)作僅當(dāng)所指定的表達(dá)式計(jì)算為true時(shí)才計(jì)算其體。計(jì)算結(jié)果也可以保存為一個(gè)作用域Boolean變量。?
語(yǔ)法:
語(yǔ)法1:沒(méi)有體?
<c:if?test="booleanExpression?"?
?var="var?"?[scope="page?|request|session|application"]/>?
語(yǔ)法2:有體?
<c:if?test="booleanExpression">
?JSP?elements
</c:if>
屬性:
屬性名 | 描述 | 類型 | 是否接受動(dòng)態(tài)值 | 是否支持EL | 是否 必須 | 默認(rèn)值 | 說(shuō)明 |
test? | 測(cè)試表達(dá)式? | boolean? | Y?
| Y | 是 | 無(wú) | 如果表達(dá)式的結(jié)果為true則執(zhí)行body,false則相反 |
var? | 變量名 | String? | N | N | 否 | 無(wú) | 用來(lái)存儲(chǔ)test運(yùn)算后的結(jié)果,即true或false?????????????????????????? |
scope? | 變量作用域 | String? | N | N | 否 | page | var變量的JSP范圍 |
實(shí)例:
<c:if?test="${empty?param.empDate}">?
<jsp:forward?page="input.jsp">?
<jsp:param?name="msg"?value="Missing?the?Employment?Date"?/>?
</jsp:forward>
?</c:if>
6.<c:choose>
庫(kù):Core(核心庫(kù))
URI:http://java.sun.com/jsp/jstl/core
前綴:c?
描述:<c:choose>動(dòng)作用于控制嵌套<c:when>和<c:otherwise>動(dòng)作的處理,它只允許第一個(gè)測(cè)試表達(dá)式計(jì)算為true的<c:when>動(dòng)作得到處理;如果所有<c:when>動(dòng)作的測(cè)試表達(dá)式都計(jì)算為false,則會(huì)處理一個(gè)<c:otherwise>動(dòng)作。<c:choose>標(biāo)簽沒(méi)有屬性,可以被認(rèn)為是父標(biāo)簽,<c:when>、<c:otherwise>將作為其子標(biāo)簽來(lái)使用。
語(yǔ)法:
<c:choose>
body(<when>和<otherwise>)
</c:choose>
限制:
<c:choose>的本地內(nèi)容只能有:
?.空白
?.1或多個(gè)<c:when>
?.0或多個(gè)<c:otherwise>
屬性:
無(wú)
實(shí)例:
----------------------------------------------------------------------------------------------------------------------------------------
Example1
<c:choose>?
<c:when?test="${product.onSale}">?
${product.salesPrice}?On?sale!?
</c:when>?
<c:otherwise>?
${product.price}?
</c:otherwise>?
</c:choose>?
---------------------------------------------------------------------------------------------------------------------------------------
Example2
<c:choose>
?<c:when?test="${condition1}">
??condition1?為?true
?</c:when>
?<c:when?test="${condition2}">
??condition2?為?true
?</c:when>
?<c:otherwise>
??condition1和conditon2都為false
?</<c:otherwise?>
說(shuō)明:
在同一個(gè)<c:choose>中,假如所有的<c:when>的test都不為true時(shí),則執(zhí)行<c:otherwise>的本體內(nèi)容。
在同一個(gè)<c:choose>中,假若有好幾個(gè)<c:when>都會(huì)true時(shí),只能有一個(gè)<c:when>成立。
</c:choose>
----------------------------------------------------------------------------------------------------------------------------------------
7.<c:when>
庫(kù):Core(核心庫(kù))
URI:http://java.sun.com/jsp/jstl/core
前綴:c?
描述:<c:when>標(biāo)簽等價(jià)于“if”語(yǔ)句,它包含一個(gè)test屬性,該屬性表示需要判斷的條件。
語(yǔ)法:
<c:when?test="testCondition">
Body?content
</c:when>
屬性:
屬性名 | 描述 | 類型 | 是否接受動(dòng)態(tài)值 | 是否支持EL | 是否 必須 | 默認(rèn)值 | 說(shuō)明 |
test | 測(cè)試表達(dá)式 | boolean | Y | Y | 是 | 無(wú) | 如果表達(dá)式的結(jié)果為true則執(zhí)行body,false則相反? |
實(shí)例:
8.<c:otherwise>
庫(kù):Core(核心庫(kù))
URI:http://java.sun.com/jsp/jstl/core
前綴:c?
描述:<c:otherwise>標(biāo)簽沒(méi)有屬性,它等價(jià)于“else”語(yǔ)句。
語(yǔ)法:
<c:otherwise>
conditional?block
</c:otherwise>
屬性:
無(wú)
實(shí)例:
<c:choose>、<c:when>、<c:otherwise>標(biāo)簽綜合實(shí)例
<c:choose>
?????????<c:when?test="${paramValues.sampleValue[2]?==?11}">
???????????????????not?12?not?13,it?is?11
?????????</c:when>
?????????<c:when?test="${paramValues.sampleValue[2]?==?12}">
???????????????????not?11?not?13,it?is?12
?????????</c:when>
?????????<c:when?test="${paramValues.sampleValue[2]?==?13}">
???????????????????not?11?not?12,it?is?13
?????????</c:when>
?????????<c:otherwise>
???????????????????not?11?、12、13
?????????</c:otherwise>
</c:choose>
jstl C標(biāo)簽(Ⅱ)地址:http://m.tkk7.com/tangzurui/archive/2008/08/13/221657.html