javascript
JSTL常用标签6
轉(zhuǎn)載自??JSTL常用標(biāo)簽6
JSTL常用標(biāo)簽:
1、EL表達(dá)式可以取出Java Bean以及單個(gè)屬性的值,在頁(yè)面中使用${..},但是不能遍歷集合。 使用JSTL可以遍歷集合,因此使用EL和JSTL配合使用,基本上可以實(shí)現(xiàn)所有的功能。
2、在使用標(biāo)簽的頁(yè)面中,頭部需要引入文件,我的公司實(shí)際項(xiàng)目引入以下的標(biāo)簽:
<%@taglib?uri="http://java.sun.com/jsp/jstl/core"? prefix="c"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
3、<c:out/>標(biāo)簽
用法:<c:out value="${param.Action}"></c:out>
等效于EL表達(dá)式中的${param.action},其中 <c:out/>標(biāo)簽有屬性default以及escapeXml,如果value的值不存在會(huì)輸出default的值,escapeXml為 true會(huì)對(duì)輸出的內(nèi)容進(jìn)行編碼(只對(duì)特殊字符&,“>”,"<");
<c:out value="${param.Action}" default="aaaa"? ></c:out> <c:out value='${"<>"}' escapeXml="true"? ></c:out>-------<>
4、<c:if/>標(biāo)簽 ?
用法:<c:if test="${param.action=='add'}"></c:if>
?== -----eq;
?>? -----gt; ?
< ------lt;
?5、<c:choose/> 、<c:when/>、<c:otherwise/>標(biāo)簽 ?
用法: ?<c:choose>
?<c:when test="${param.action=='12'}"> ??
?? when標(biāo)簽的輸出
?</c:when>
? <c:otherwise> ???
? otherwise標(biāo)簽的輸出?
?</c:otherwise>
?</c:choose>
?6、<c:forEach/>標(biāo)簽
?var 定義變量的名稱,begin定義開(kāi)始的位置,end定義結(jié)束的位置,step定義步長(zhǎng) ?
?(1)<c:forEach/>標(biāo)簽遍歷List ?
?? 用法:<c:forEach items="${personlist}" var="data"> ?? <tr> ????? <td>${data.age}</td> ?? </tr> ?</c:forEach>
?(2) <c:forEach/>標(biāo)簽遍歷Map對(duì)象
?? Map也是集合類,但是由于Map中存儲(chǔ)的是一對(duì)屬性,因此遍歷Map與遍歷List、set String[]不同 ?
? <forEach items="${mapperson}" var="data">
?<tr>
?? <td>${data.key}</td> ??
<td>${data.value}</td>? ?
???? </tr> ??
?</forEach> ??
(3)<c:forEach/>標(biāo)簽的varStatus屬性
?? 當(dāng)前被遍歷對(duì)象的信息被記錄在varStatus里,通過(guò)varStatus即可獲取當(dāng)前遍歷對(duì)象的信息。 ??
? varStatus的屬性: ??
index:返回當(dāng)前對(duì)象是第幾個(gè)對(duì)象。從0開(kāi)始計(jì)數(shù)。 ??
count:返回已經(jīng)遍歷了多少對(duì)象。從1開(kāi)始計(jì)數(shù)。 ??
first:返回當(dāng)前對(duì)象是否是第一個(gè)對(duì)象 ??
last:返回當(dāng)前對(duì)象是否是最后一個(gè)對(duì)象。 ??
current:返回當(dāng)前被遍歷的對(duì)象。 ?
begin:返回forEach標(biāo)簽begin屬性的值。 ??
end:返回forEach標(biāo)簽end屬性的值。 ??
step:返回forEach標(biāo)簽step屬性的值。
7、<forTokens/>標(biāo)簽
? forTokens標(biāo)簽與forEach標(biāo)簽類似,都有begin、end、step、items等屬性,可以循環(huán)遍歷items屬性的值。
?? 不同的是forEach標(biāo)簽里的items屬性里面是集合類對(duì)象或者是數(shù)組,而forTokens標(biāo)簽里的items屬性里面是字符串。 這個(gè)字符串會(huì)被delims屬性內(nèi)容分割成多個(gè)字符串。
? ?<c:forTokens items="aa,bb,cc,dd" delims="," var="data" varStatus="status" begin="1" end="2">
?????? ?<tr>?<td>${data}</td>?</tr>
? </c:forTokens>
8、<c:set/>標(biāo)簽以及<forEach/>遍歷數(shù)組
???? <c:set var="names" value="${fn:split(strlist,',')}"/>
<forEach var="name" items="${names}"> ?${name} </forEach>
9、<c:set/>標(biāo)簽
能夠?qū)崿F(xiàn)寫(xiě)的功能。既可以聲明一個(gè)不存在的對(duì)象,也可以修改一個(gè)已經(jīng)存在的對(duì)象,還可以修改對(duì)象的某個(gè)屬性,前提是該屬性是可寫(xiě)的 ?(即有對(duì)應(yīng)的setter方法)。 ?set標(biāo)簽有5個(gè)屬性:
? var :是set的對(duì)象名,如果該對(duì)象不存在則生成,如果存在則修改。 ?
? value:是set進(jìn)去的值,可以是El表達(dá)式。
??scope:聲明該對(duì)象的范圍,取值可以為Session 、request、page、application等,默認(rèn)為page。 ?
? target:作用類似于var,不同的是target只能用來(lái)操作Java Bean或者M(jìn)ap。target和var的功能是互補(bǔ)的,二者不能同時(shí)使用。target只能接受 ?El表達(dá)式,而var不能接受EL表達(dá)式。?? target一般與property一塊使用。如果target為Java Bean,則property為Java Bean的一個(gè)屬性,則不存在會(huì)拋錯(cuò)。 ?如果target為Map,則property為Map的一個(gè)Key,如果不存在會(huì)創(chuàng)建。??target只能修改已經(jīng)存在的Java Bean的屬性或者M(jìn)ap的內(nèi)容。
?var 只能設(shè)置Integer、Double、Float、String等類型的數(shù)據(jù),而不能操作Java Bean或者M(jìn)ap等復(fù)雜數(shù)據(jù)類型。
總結(jié)
- 上一篇: dnf主要吃电脑什么配置(电脑dnf配置
- 下一篇: Dogado提供高度安全的网络托管和屡获