004.JSTL之核心C標簽

粗體為必須掌握部分

  1. 表達式控制標簽out心铃、set满着、remove谦炒、catch
  2. 流程控制標簽if贯莺、choose风喇、when、otherwise
  3. 循環(huán)標簽forEach缕探、forTokens
  4. 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>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末粥脚,一起剝皮案震驚了整個濱河市窃肠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刷允,老刑警劉巖冤留,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異树灶,居然都是意外死亡纤怒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門天通,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泊窘,“玉大人,你說我怎么就攤上這事像寒『姹” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵诺祸,是天一觀的道長携悯。 經(jīng)常有香客問我,道長序臂,這世上最難降的妖魔是什么蚌卤? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮奥秆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咸灿。我一直安慰自己构订,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布避矢。 她就那樣靜靜地躺著悼瘾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪审胸。 梳的紋絲不亂的頭發(fā)上亥宿,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音砂沛,去河邊找鬼烫扼。 笑死,一個胖子當(dāng)著我的面吹牛碍庵,可吹牛的內(nèi)容都是我干的映企。 我是一名探鬼主播悟狱,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堰氓!你這毒婦竟也來了挤渐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤双絮,失蹤者是張志新(化名)和其女友劉穎浴麻,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體囤攀,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡白胀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了抚岗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片或杠。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宣蔚,靈堂內(nèi)的尸體忽然破棺而出向抢,到底是詐尸還是另有隱情,我是刑警寧澤胚委,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布挟鸠,位于F島的核電站,受9級特大地震影響亩冬,放射性物質(zhì)發(fā)生泄漏艘希。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一硅急、第九天 我趴在偏房一處隱蔽的房頂上張望覆享。 院中可真熱鬧,春花似錦营袜、人聲如沸撒顿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凤壁。三九已至,卻和暖如春跪另,著一層夾襖步出監(jiān)牢的瞬間拧抖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工免绿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留唧席,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像袱吆,于是被迫代替她去往敵國和親厌衙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容

  • JSP 基本結(jié)構(gòu)JSP 頁面組成:模板文本(HTML,XML,純文本)绞绒,JSP 元素婶希;JSP 元素:腳本元素,指令...
    jslancer閱讀 849評論 0 11
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法蓬衡,類相關(guān)的語法喻杈,內(nèi)部類的語法,繼承相關(guān)的語法狰晚,異常的語法筒饰,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 一、JSTL標簽庫介紹 JSTL標簽庫的使用是為彌補html標簽的不足壁晒,規(guī)范自定義標簽的使用而誕生的瓷们。使用JSLT...
    孔垂云閱讀 562評論 0 0
  • JSTL標簽庫的使用是為彌補html標簽的不足,規(guī)范自定義標簽的使用而誕生的秒咐。使用JSLT標簽的目的就是不希望在j...
    重山楊閱讀 644評論 0 3
  • 當(dāng)我們看到昔日的同事谬晕,轉(zhuǎn)眼一變就變成了你的上級,而她和領(lǐng)導(dǎo)們總是相處融洽携取。而你還在原地攒钳,你有沒有想過彼此的差距?事...
    7515b237f6ce閱讀 252評論 0 1