粗體為必須掌握部分
- 表達式控制標簽:out心铃、set满着、remove谦炒、catch
- 流程控制標簽:if贯莺、choose风喇、when、otherwise
- 循環(huán)標簽:forEach缕探、forTokens
- URL操作標簽:import魂莫、url、redirect
只用JSTL需要大家引入兩個JAR包 jstl-1.2.jar和standard-1.1.2.jar,如果是MyEclipse會自帶,我們還是使用去下載的
使用標簽時爹耗,一定要在jsp文件頭加入以下代碼:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
1. <c:out>標簽
作用: 用來顯示數(shù)據(jù)對象(字符串耙考、表達式)的內(nèi)容或結(jié)果
使用Java腳本的方式為:<% out.println("hello") %>
<%=表達式 %>
使用JSTL標簽:<c:out value="字符串">,例如:
<body>
<c:out value="< pangsir>" escapeXml="true" default="default"></c:out><br/>
<c:out value="< pangxiansheng>" escapeXml="false" default="default"></c:out><br/>
<c:out value="${null}" escapeXml="false">default</c:out><br/>
</body>
運行效果:
2. <c:set>標簽
作用: 用于將變量存取于** JSP范圍[pageContext/request/session/appliaction]**中或 JavaBean 屬性中潭兽。下面的例子中假設(shè)已經(jīng)有User.java 這個類文件倦始。
一共有四種語法格式,
- 前兩種是給 jsp的范圍 變量賦值
- 后兩種是給 javaBean 變量賦值
運行效果:
真心用的比較少山卦,但是還是蠻好用的鞋邑,一般情況下需要配合使用的是EL表達式
3. <c:remove>標簽
放棄吧 , 主要用來從指定的** jsp 范圍[pageContext/request/session/application]**內(nèi)移除指定的變量。
使用類似账蓉,下面只給出語法:
<c:remove var="變量名" [scope="page|request|session|application"]></c:remove>
自己測試吧,存在即是合理的,希望誰知道什么時候能用到呢?
4. <c:catch>標簽
****放棄吧**** 用來處理 JSP 頁面中產(chǎn)生的異常枚碗,并存儲異常信息,好久都沒有見過了,漸漸的備遺忘了
<c:catch var="name1">
容易產(chǎn)生異常的代碼
</c:catch>
5. <c:if>標簽 [重中之重]
表達式: <c:if test="條件1" var="name" [scope="page|request|session|application"]></c:if>
代碼截圖:
注意比較的中文比較的時候使用的單引號,如果是數(shù)字自己比較一下就可以了铸本!
運行效果:
6. <c:choose> <c:when> <c:otherwise>標簽 掌握
相當(dāng)于switch語法,三個標簽通常嵌套使用肮雨,第一個標簽在最外層,最后一個標簽在嵌套中只能使用一次
<body>
<c:set var="score">85</c:set>
<c:choose>
<c:when test="${score>=90}">
你的成績?yōu)閮?yōu)秀箱玷!
</c:when>
<c:when test="${score>=70&&score<90}">
您的成績?yōu)榱己?
</c:when>
<c:when test="${score>60&&score<70}">
您的成績?yōu)榧案? </c:when>
<c:otherwise>
對不起怨规,您沒有通過考試陌宿!
</c:otherwise>
</c:choose>
</body>
自己測試一下,特別注意:test->一定要配合使用EL表達式
7. <c:forEach>遍歷標簽 [重中之重]
作用: 該標簽根據(jù)循環(huán)條件遍歷集合 Collection 中的元素波丰。
語法:<c:forEach var="name" items="Collection" varStatus="statusName" begin="begin" end="end" step="step"></c:forEach>
屬性解釋:
- var 用于存儲從集合中取出的元素限番;
- items 指定要遍歷的集合;
- varStatus 用于存放集合中元素的信息呀舔。
- step 步長
- begin 從什么位置索引開始
- end 到什么位置結(jié)束,不能越界啊
varStatus 一共有4種狀態(tài)屬性弥虐,下面例子中說明:
代碼示例:
<body>
<h4><c:out value="forEach實例"/></h4>
<hr>
<%
//模擬的數(shù)據(jù),應(yīng)該該數(shù)據(jù)在Servlet中產(chǎn)地過來最好
List a=new ArrayList();
a.add("四海興唐");
a.add("教育培訓(xùn)");
a.add("Java教學(xué)");
a.add("第一名");
a.add("胖先生");
//必須在范內(nèi)才可以使用
request.setAttribute("a",a);
%>
<B><c:out value="不指定begin和end的迭代:" /></B><br>
<c:forEach var="fuwa" items="${a}">
<c:out value="${fuwa}"/><br>
</c:forEach>
<hr/>
<B><c:out value="指定begin和end的迭代:" /></B><br>
<c:forEach var="fuwa" items="${a}" begin="1" end="3" step="2">
<c:out value="${fuwa}" /><br>
</c:forEach>
<hr/>
<B><c:out value="輸出整個迭代的信息:" /></B><br>
<c:forEach var="fuwa" items="${a}" begin="3" end="4" step="1" varStatus="s">
<c:out value="${fuwa}" />的四種屬性:<br>
所在位置,即索引:<c:out value="${s.index}" /><br>
總共已迭代的次數(shù):<c:out value="${s.count}" /><br>
是否為第一個位置:<c:out value="${s.first}" /><br>
是否為最后一個位置:<c:out value="${s.last}" /><br>
</c:forEach>
</body>
這個必須要記住啊媚赖,一定要記住八瘛!我們可以給MyEclipse或者Eclipse安裝插件惧磺,方便我們的使用颖对!
運行效果:
8. <c:forTokens>
作用: 用于瀏覽字符串,并根據(jù)指定的字符串截取字符串 這個屬于技巧磨隘,需要大家靈活掌握
語法: <c:forTokens items="stringOfTokens" delims="delimiters" [var="name" begin="begin" end="end" step="len" varStatus="statusName"]></c:forTokens>
代碼示例:
<body>
<h4>
<c:out value="forToken實例" />
</h4>
<hr>
<c:forTokens items="四缤底、海、興番捂、唐个唧、歡、迎设预、你" delims="徙歼、" var="c1">
<c:out value="${c1}"></c:out>
</c:forTokens>
<hr>
<c:forTokens items="SHXT-VV" delims="-" var="t">
<c:out value="${t}"></c:out>
</c:forTokens>
<hr>
<c:forTokens items="1*2*3*4*5*6*7" delims="*" begin="1" end="3"
var="n" varStatus="s">
<c:out value="${n}" />的四種屬性:<br>
所在位置,即索引:<c:out value="${s.index}" />
<br>
總共已迭代的次數(shù):<c:out value="${s.count}" />
<br>
是否為第一個位置:<c:out value="${s.first}" />
<br>
是否為最后一個位置:<c:out value="${s.last}" />
<br>
</c:forTokens>
</body>
運行效果:
9. URL 操作標簽
把其他靜態(tài)或動態(tài)文件包含到 JSP 頁面
標簽名稱 | 描述 |
---|---|
<c:import> |
可以包含其他web應(yīng)用中的文件鳖枕,甚至是網(wǎng)絡(luò)上的資源 |
<jsp:include> |
只能包含同一個web應(yīng)用中的文件 |
<c:import> 標簽說明
語法:
<c:import url="url" [context="context"] [value="value"] [scope="..."] [charEncoding="encoding"]></c:import>
<c:import url="url" varReader="name" [context="context"][charEncoding="encoding"]></c:import>
中括號代表是可選擇的屬性魄梯,可以不寫
<h4>
<c:out value="import實例" />
</h4>
<hr>
<h4>
<c:out value="絕對路徑引用的實例" />
</h4>
<c:catch var="error1">
<c:import url="http://www.baidu.com" />
</c:catch>
<c:out value="${error1}"></c:out>
<hr>
<h4>
<c:out value="相對路徑引用的實例,引用本應(yīng)用中的文件" />
</h4>
<c:catch>
<c:import url="shxt.txt" charEncoding="UTF-8" />
</c:catch>
<hr>
<h4>
<c:out value="使用字符串輸出宾符、相對路徑引用的實例酿秸,并保存在session范圍內(nèi)" />
</h4>
<c:catch var="error3">
<c:import var="myurl" url="shxt.txt" scope="session" charEncoding="UTF-8"></c:import>
<c:out value="${myurl}"></c:out>
<c:out value="${myurl}" />
</c:catch>
<c:out value="${error3}"></c:out>
URL路徑有個絕對路徑和相對路徑
-** 相對路徑**:<c:import url="sxt.txt"/>
那么,shxt.txt 必須與當(dāng)前文件放在同一個文件目錄下魏烫。
重點解釋
如果以"/"開頭辣苏,表示存放在應(yīng)用程序的根目錄下,如Tomcat應(yīng)用程序的根目錄文件夾為 webapps则奥。
如果要訪問webapps管理文件夾中的其他Web應(yīng)用考润,就要用context屬性。
例如訪問demoProj下的index.jsp读处,則:
<c:import url="/index.jsp" context="/demoProj"/>
<c:redirect> 標簽說明
作用: 該標簽用來實現(xiàn)請求的重定向
對用戶輸入的用戶名和密碼進行驗證糊治,不成功則重定向到登錄頁面》2眨或者實現(xiàn)Web應(yīng)用不同模塊之間的銜接
語法:
<c:redirect url="url" [context="context"]/>
或:
<c:redirect url="url" [context="context"]>
<c:param name="name1" value="value1">
</c:redirect>
代碼示例:
<c:redirect url="http://127.0.0.1:8001">
<c:param name="uname">shxt</c:param>
<c:param name="password">hanpang8983</c:param>
</c:redirect>
地址欄的結(jié)果為:
http://127.0.0.1:8080/?uname=shxt&password=hanpang8983
<c:url> 標簽說明
用于動態(tài)生成一個 String 類型的URL井辜,可以同上個標簽共同使用绎谦,也可以使用HTML的
<a>
標簽實驗超鏈接。
語法:
<c:url value="value" [var="name"] [scope="..."] [context="context"]>
<c:param name="name1" value="value1">
</c:url>
或:
<c:url value="value" [var="name"] [scope="..."] [context="context"]/>
代碼示例:
<c:url value="http://127.0.0.1:8001" var="url" scope="session"</c:url>
<a href="${url}">Tomcat首頁</a>