国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Java標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL)

2019-11-14 14:55:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

JSTL(java Standard Tag Library) –Java標(biāo)準(zhǔn)標(biāo)簽庫(kù)

JSTL組成:


JSTL –Core 核心標(biāo)簽庫(kù)。 - 這是本部分的重點(diǎn)
JSTL – I18N - 國(guó)際化標(biāo)簽庫(kù)。Internationalization-    I18N
JSTL – SQL – 數(shù)據(jù)庫(kù)操作標(biāo)簽(有悖于MVC設(shè)計(jì)模式不用不講)。
JSTL - Functions – 函數(shù)庫(kù)。
JSTL - xml ,對(duì)XML的操作(同SQL標(biāo)簽)。在jstl-1.2.jar包的META-INF目錄中,保存著各種tld文件的版本。請(qǐng)查看。

使用JSTL核心標(biāo)簽:
如果你的Web項(xiàng)目是基于JavaEE2.5或以上的。可以在你項(xiàng)目的任意頁(yè)面上通過(guò)<%@ taglib 指令使用JSTL的核心標(biāo)簽庫(kù)。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"  uri是引用標(biāo)簽庫(kù)的資源定位符,并不代表一個(gè)實(shí)際的地址。
Prefix是自定義的前綴。
如果你的項(xiàng)目是JavaEE2.5以下的項(xiàng)目,必須在在你項(xiàng)目中的lib目錄下,存在以下兩個(gè)jar文件為:
Jstl.jar、standard.jar


具體使用:


JSTL-Core一共包含以下幾個(gè)子標(biāo)簽: 

<c:out>  ${name} 輸出標(biāo)簽
<c:set>   pageContext.setAttirbute(key,value,scope); 聲明標(biāo)簽
c:remove 刪除某個(gè)范疇內(nèi)的數(shù)據(jù)
<c:if> 判斷c:else,c:elsfif
<c:choose><c:when><c:otherwise> 判斷分枝c:if,c:else if c:
<c:forEach> 遍歷
<c:forTokens> 分隔
<c:import> 導(dǎo)入其他資源,相當(dāng)于動(dòng)態(tài)包含共享同一個(gè)request
<c:url>  - 重寫(xiě)url
<c:redirect> 重定向  response.sendRedirect(‘’..)
 
下面對(duì)具體的操作進(jìn)行解釋與演示:

<c:out>    


<c:out  value=&hell
ip;/>用于在頁(yè)面上輸出結(jié)果。
<c:out value=“${requestScope.name}”/> -將request中的name值輸出
<c:out value=“${param.username}”/> - 用于將參數(shù)輸出到頁(yè)面上。
<c:out value=“${name}” default=“hello”/>從page到application開(kāi)始查找,如果沒(méi)有找到,就顯示默認(rèn)值hello.
另一種設(shè)置默認(rèn)值的方式:

<c:out value=“${name}”>			Default-value-默認(rèn)值。		</c:out>


只有當(dāng)要求的信息為null或不存在時(shí)才會(huì)輸出默認(rèn)值。
excapeXml屬性:默認(rèn)值為true,用于將html等標(biāo)簽轉(zhuǎn)換成&lt;等轉(zhuǎn)換元素,示例:
 

<%     String name="<font color='red'>Red</font>";      pageContext.setAttribute("name",name);  %><c:out value=“${name}” escapeXml=“false”></c:out> 不對(duì)xml或html進(jìn)行轉(zhuǎn)換,直接輸出,這樣就會(huì)在頁(yè)面上看到紅色的Red字符,因?yàn)闉g覽器會(huì)解析html數(shù)據(jù)。

 

<span style="font-size:18px;"><%   		pageContext.setAttribute("name", "jack_P");   		request.setAttribute("name", "jack_R");   		request.setAttribute("name2", "<font color='red'>你好,中國(guó)</font>");   		 %>   		 ${name }  //從小范圍到大開(kāi)始查找<br/>   		<c:out value="${name }"></c:out>  -------輸出標(biāo)簽   		 <hr/></span>
<span style="font-size:18px;">   <span style="white-space:pre">		</span>  <!-- c:out標(biāo)簽一定會(huì)讓所顯示的內(nèi)容原樣輸出,避開(kāi)html的解析 -->   <span style="white-space:pre">		</span> ${name2 }<br/>    可以解析html語(yǔ)言<br/>   <span style="white-space:pre">		</span><c:out value="${name2 }"></c:out> -------不可以解析html語(yǔ)言,原樣輸出   <span style="white-space:pre">		</span></span>

<c:set>


<c:set/>標(biāo)簽的作用如下:

為String類(lèi)型的命名變量設(shè)置值。
<c:set var=“變量名” value=“變量的值” scope=“page|request|session|application”/>
<c:set var=“name” value=“${param.name}”/>直接從參數(shù)中取出數(shù)據(jù)給name賦值。
如果變量為JavaBean則為這個(gè)JavaBean的屬性設(shè)置值。
<c:set target=“JavaBean的變量名” property=“設(shè)置的屬性” value=“值”/> 
示例:
<jsp:useBean id="person" class="cn.itcast.Person"></jsp:useBean>
  <c:set target="${pageScope.person}" property="name" value="Jack"/>
  <c:set target="${pageScope.person}" property="age" value="99"/>
如果變量為Map則,給Map中的key設(shè)置值。
<c:set target=“代表Map的變量” property=“key” value=“value”/>,示例:
<jsp:useBean id="map" class="java.util.HashMap" scope="request"></jsp:useBean>
  <c:set target="${requestScope.map}" property="name" value="Jack"/>
  <c:out value="${requestScope.map.name}"/>
為String類(lèi)型的命名變量設(shè)置值。
<c:set var=“變量名” value=“變量的值” scope=“page|request|session|application”/>
<c:set var=“name” value=“${param.name}”/>直接從參數(shù)中取出數(shù)據(jù)給name賦值。
如果變量為JavaBean則為這個(gè)JavaBean的屬性設(shè)置值。
<c:set target=“JavaBean的變量名” property=“設(shè)置的屬性” value=“值”/> 
示例:
<jsp:useBean id="person" class="cn.itcast.Person"></jsp:useBean>
  <c:set target="${pageScope.person}" property="name" value="Jack"/>
  <c:set target="${pageScope.person}" property="age" value="99"/>
如果變量為Map則,給Map中的key設(shè)置值。
<c:set target=“代表Map的變量” property=“key” value=“value”/>,示例:
<jsp:useBean id="map" class="java.util.HashMap" scope="request"></jsp:useBean>
  <c:set target="${requestScope.map}" property="name" value="Jack"/>
  <c:out value="${requestScope.map.name}"/>

	 <span style="font-size:18px;"><hr/>   		 <!-- c:set標(biāo)簽可以設(shè)置變量的值  scope默認(rèn)放在page容器當(dāng)中-->   		 <c:set var="a" value="jack中國(guó)"></c:set>   		 ${a } <br/>   		 <!-- 指定范圍以后,需要從指定范圍去取,不然會(huì)自動(dòng)從小到大開(kāi)始查找 -->   		 <c:set var="a" value="jack中國(guó)2" scope="request" ></c:set>   		 ${requestScope.a } <br/>   		 <hr/></span>   		 

<c:if>


<c:if/>用于實(shí)現(xiàn)Java語(yǔ)言中的if語(yǔ)句。它的語(yǔ)法如下:
<c:if test=“邏輯表達(dá)式”   var=“代表邏輯表達(dá)式值的命名變量”  scope=../>
示例:
<c:if test=“${name!=‘Jack’}”>
       當(dāng)name的值為Jack時(shí)輸出此行信息
</c:if>
上面的判斷等價(jià)于下面的代碼片段:
if(pageContext.getAttribute(“name”)!=null && !..equals(“Jack”)){
out.println(“…..”);
}

 <hr/>   		 <c:set var="age" value="20">   		 </c:set>   		 <c:if test="${age>25 }" var="aa">   		 	<h2>比25大咯!!</h2>   		 </c:if>   		 <c:if test="${!aa }">   		 	<h3>比25小咯!!</h3>   		 </c:if>   		 <hr/>

 

choose,when,otherwise


這幾個(gè)標(biāo)簽共同使用可以實(shí)現(xiàn)Java中的if…else語(yǔ)句的功能。
<c:choose>
  <c:when test="${empty param.name}">
  用戶(hù)沒(méi)有輸入name參數(shù)
  </c:when>
  <c:when test="${param.name=='Admin'}">
  ${param.name}是管理員
  </c:when>
  <c:otherwise>
  用戶(hù)是:${param.name}
  </c:otherwise>
  </c:choose>
使用c:when必須遵循以下語(yǔ)法規(guī)則:
<c:when/>和<c:otherwise/>不能單獨(dú)使用,它必須位于<c:choose內(nèi)。
<c:otherwise/>必須位于c:when之后。
 

<span style="font-size:18px;"> <hr/>   		 <c:set var="age" value="-18"></c:set>   		 <c:choose>   		 	<c:when test="${age>20 }">   		 		大于20!!   		 	</c:when>   		 	<c:when test="${age>10 }">   		 		大于10!!   		 	</c:when>   		 	<c:when test="${age<10 }&&${age>0 }">   		 		小于于10!!   		 	</c:when>   		 	<c:otherwise>    		 		這就是屬于其他的了 。。。   		 	</c:otherwise>   		 </c:choose>   		 <hr/></span>

 

<c:remove>移除某個(gè)標(biāo)簽

 

 <hr/>   		 <!-- 移除屬性 c:remove  默認(rèn)是從pageScope中移除-->   		 <c:remove var="a" scope="request"/>   		  aaa ${requestScope.a }   		 <hr/>

 

<c:ForEach>迭代標(biāo)簽


forEach用于遍歷集合中的對(duì)像。
基本語(yǔ)法:
<c:forEach var=“迭代變量” item=“${集合名稱(chēng)}” varStatus=“迭代下標(biāo)變量”>
       迭代部分
</c:forEach>
forEach的begin(開(kāi)始索引)、end(結(jié)束索引)、step(步長(zhǎng))屬性:
<c:forEach begin=0 end=10 step=“2”>…</c:forEach>將輸出0,2,4,6,810 

 <hr/>   		 <!--  c:forEach  增強(qiáng)for循環(huán) -->   		 <!-- 普通版本 -->   		 <c:forEach begin="0" end="10" var="x" step="2">   		  	${x } <br/>   		  </c:forEach>   		   <hr/>   		 <%   		 String[] a={"小王","曉明	","小楊","新哥"};   		 request.setAttribute("a", a);   		  %>   		  <c:forEach items="${requestScope.a }" var="i">   		  	${i }<br/>  <!-- 一定要注意取值的范圍 -->   		  </c:forEach>   		 <hr/>
   		<!-- 演示list用jstl -->   		<%   		List<String> list=new ArrayList<String>();   		list.add("123a");   		list.add("123d");   		list.add("123b");   		list.add("123c");   		list.add("123e");   		list.add("大新哥");   		session.setAttribute("list", list);//后面用el表達(dá)式取得是參數(shù)   		   		 %>   		 <c:forEach items="${sessionScope.list }" var="li">   		 	${li } <br/>   		 </c:forEach>   		 <hr/>
 		    		    		 <!-- 采用map的方式演示jstl -->   		 <%   		 //演示map采用el表達(dá)式   		 Map<String,Object> map=new HashMap<String,Object>();//存儲(chǔ)以hash值存儲(chǔ)   		 map.put("aa", 123);   		 map.put("cc", 567);   		 map.put("bb", 345);   		 map.put("dd", 789);   		 application.setAttribute("map", map);   		  %>   		  <c:forEach items="${ applicationScope.map}" var="mm" varStatus="idx">   		  	${mm.key }  ${mm.value }<br/> ${idx.index } ${idx.count }   		  </c:forEach>   		 <hr/>   		 <hr/>

<c:forTokens>對(duì)字符進(jìn)行分割,以某某分割

 

<span style="font-size:18px;"> <!-- 分割字符串,相當(dāng)于split() -->   		 <c:forTokens items="aa,bb,cc,dd,ee,ff" delims="," var="x">   		 	${x }   		 </c:forTokens>   		 <hr/></span>

其他標(biāo)簽


<c:import/>包含其他web資源,功能類(lèi)似與<jsp:include/>(動(dòng)態(tài)包含)。
<c:import url=“web資源”/>
<c:url/>按特定的方式重寫(xiě)URL。
<c:url value=“/aaa.jsp”/>總是以/開(kāi)頭,如果只使用value屬性為直接使用或輸出。
<c:url value=“/…” var=“someVar” scope=“…”/>也可以通過(guò)這樣的方式將重寫(xiě)的url放到某個(gè)范圍中,然后再取出來(lái)使用。 
<c:redirect/>負(fù)責(zé)重定向。
<c:redirect url=“重定向到的資源”/>
在使用<c:redirect時(shí)可以帶更多的參數(shù):
<c:redirect url=“/…”>
     <c:param name=“someName” value=“someValue”/>
</c:redirect>
 

<span style="font-size:18px;"> <!-- c:url -->   		 <a href="<c:url value="/Servlet"></c:url>">調(diào)轉(zhuǎn)到土豪界面</a>   		   <%--    		 <c:redirect url="/Servlet"></c:redirect>   		--%>   		 <a href="<c:url value='/jsps/jstldemo2.jsp'></c:url>">利用CSS+jstl技術(shù)進(jìn)行演示</a>   		 <hr/></span>

前兩天在一群里看見(jiàn)有人推薦一個(gè)app叫問(wèn)啊,就可以發(fā)題答題那種的,感覺(jué)就跟uber滴滴打車(chē)似的,一般這種軟件一上來(lái)就砸錢(qián)給紅包啥的,哥之前刷過(guò)uber的單有經(jīng)驗(yàn)!試驗(yàn)了幾次應(yīng)該可以刷,把注冊(cè)紅包和之前領(lǐng)的紅包錢(qián)套現(xiàn),目前我提了五十多,目測(cè)還能刷更多。ps,但是盡量要問(wèn)技術(shù)相關(guān)的問(wèn)題,不然容易被封。

  有技術(shù)的可以自己試,不會(huì)的可以q我:QQ群290551701 聚集很多互聯(lián)網(wǎng)精英,技術(shù)總監(jiān),架構(gòu)師,項(xiàng)目經(jīng)理!開(kāi)源技術(shù)研究,歡迎業(yè)內(nèi)人士,大牛及新手有志于從事IT行業(yè)人員進(jìn)入!


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁陕县| 韶山市| 得荣县| 四平市| 贡嘎县| 晋宁县| 蓬安县| 纳雍县| 北碚区| 淮北市| 林州市| 苍溪县| 屯门区| 尼玛县| 龙岩市| 禄丰县| 灌南县| 屏边| 弋阳县| 尼勒克县| 宁武县| 伊川县| 武穴市| 舞钢市| 青岛市| 于田县| 法库县| 台南县| 山西省| 永平县| 合肥市| 高碑店市| 洞口县| 星座| 仙居县| 赤壁市| 德昌县| 桂林市| 青川县| 依兰县| 普陀区|