struts之JSTL-core庫學(xué)習(xí)筆記
Posted on 2009-04-07 18:59 鄭舒力 閱讀(295) 評論(0) 編輯 收藏 所屬分類: struts 學(xué)習(xí)筆記JSTL標(biāo)簽庫的配置
需要在web程序的lib目錄下粘貼jstl.jar和standard.jar(如果只使用el表達(dá)式,不用拷貝這兩個jar)
注意:jstl必須在能夠支持j2ee1.4/servlet2.4/jsp2.0版本上的容器才能運(yùn)行。
c開頭的核心庫,fmt開頭的為格式化庫,fn開頭的為函數(shù)庫,sql開頭的為操作SQL庫,x開頭的操縱XML
核心庫
<c:out/>輸出標(biāo)簽
examples:
<c:out value="${hello}"/>
如果需要再scope里取值,在value內(nèi)必須是el表達(dá)式或jsp腳本,否則將把引號內(nèi)容按字符串輸出
<c:out value="abc"/>將輸出abc。
如果只是以上業(yè)務(wù)的話,推薦使用el表達(dá)式取值,更加簡潔。
<c:out value="${abc}" default="123"/>
如果abc在scope內(nèi)并不存在的話,可以加入default屬性規(guī)定默認(rèn)值.
<c:out value="${cz}" escapeXml="false"/>
如果想把字符串按HTML格式輸出,需加入escapeXml="false"。
此處推薦使用el表達(dá)式,el自動按HTML格式輸出。
<c:set><c:remove>設(shè)值,移除標(biāo)簽
examples:
<c:set value="123" var="temp"/>
temp:${temp}
<c:remove var="temp"/>
temp:${temp}
var指定變量名。
<c:if><c:if/>判斷標(biāo)簽
examples:
<c:if test="${v1 lt v2}" var="v">
v1小于v2
${v }
</c:if>
var標(biāo)簽指定變量并接收test內(nèi)判斷的值
<c:choose>條件分支標(biāo)簽
examples:
<c:choose>
<c:when test="${v1<v2}">
v1小于v2
</c:when>
<c:otherwise>
v1大于v2
</c:otherwise>
</c:choose>
使用choose標(biāo)簽有兩點需要注意
1、<c:choose>標(biāo)簽不能單獨出現(xiàn)
2、<c:otherwise>標(biāo)簽不能出現(xiàn)在<c:when>標(biāo)簽之前,</c:when>可以有多對
<c:forEach>循環(huán)標(biāo)簽
examples:
<c:forEach items="${userList}" var="user">
<tr>
<td>${user.name}</td>
<td>${user.age}</td>
<td>${user.group.name}</td>
</tr>
</c:forEach>
items屬性指定集合數(shù)組,var屬性指定循環(huán)取出的每一項的變量名,變量var是存放在scope范圍內(nèi)的
所以需要使用el表達(dá)式取出。
<c:forEach>循環(huán)標(biāo)簽各項屬性說明
varStatus屬性:獲取循環(huán)中var的狀態(tài)。
<c:forEach items="${userList}" var="user" varStatus="vs">
vs.count取出當(dāng)前是循環(huán)的第幾次,vs.step獲取循環(huán)的步長.
<c:forEach items="${userList}" var="user" begin="2" end="8" step=2>
循環(huán)從集合的第二項開始,循環(huán)到第八項,循環(huán)步長為2
循環(huán)取出map
example:
<c:forEach items="${map}" var="m">
${m.key }=${m.value }<br>
</c:forEach>
${m.key }輸出鍵,${m.value }輸出值
<c:forTokens>支持分隔符的循環(huán)標(biāo)簽
example:
<c:forTokens items="${tok}" delims="," var="v">
${v }<br>
</c:forTokens>
其他屬性與<c:forEach>標(biāo)簽功能相同,需要注意的是delims=",",它指定了以什么做為分隔符進(jìn)行分割。
request內(nèi)設(shè)置"1,2,3,4,5",此循環(huán)的輸出效果如下:
1
2
3
4
5
<c:import>導(dǎo)入標(biāo)簽
example:
<c:import url="http://127.0.0.1/struts_taglib"></c:import>
此標(biāo)簽作用相當(dāng)于jsp:include標(biāo)簽的作用,當(dāng)前頁面包含url里的頁面。
<c:redirect>重定向標(biāo)簽
example:
<c:redirect url="http://127.0.0.1/struts_taglib"></c:redirect>
直接重定向至url指定地址