<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 37, comments - 8, trackbacks - 0, articles - 0

    jsp程序設計:jstl之JSTL標簽庫(上)

    Posted on 2008-10-26 09:44 夢與橋 閱讀(2679) 評論(0)  編輯  收藏 所屬分類: jsp程序設計
    1、JSTL標簽庫概述:
         JSTL通常被認為是一種單標簽庫。但JSTL實際上有4個標簽庫。這些標簽庫被概括為如下:  
        §核心標簽庫—包含一些Web應用的必要的標簽。核心標簽庫的實例包括循環,表達式賦值和基本輸入輸出。.  
        §格式化/國際化標簽庫—包括被用來解析數據的標簽庫。這種標簽會解析數據,比如日期,不同的場所區域等。  
        §數據庫標簽庫—包含被用來訪問SQL數據庫的標簽。這些標簽通常僅僅只創建原形(prototype)程序。這個是因為大多數程序不會直接從JSP頁面中來處理數據庫訪問。數據庫訪問應該被嵌入到能夠被JSP頁面所訪問的EJB中。  
        §XML標簽庫—包含被用來訪問XML元素的標簽。因為XML廣泛使用于Web開發,XML的處理是JSTL的一個重要的特征。
    2、安裝使用JSTL1.1
        JSTL1.1支持Servlet2.4且是JSP2.0以上版本的容器中,可以到這兒下載jakarta-taglibs-standard-1.1.2.zip,解壓后將lib目錄中的jstl.jar、standard.jar復制到當前Web應用的“WEB-INF/lib”中,最好同時把tld文件的目錄也復制到WEB-INF中,方便日后使用。
    3、核心標簽庫,包含通用標簽、條件標簽、迭代標簽、URL標簽
        通用標簽用于操作JSP頁面創建存儲在隱式對象中的變量;條件標簽用于對JSP頁面中的代碼進行條件判斷和處理;迭代標簽用于循環遍歷一個對象的集合;URL標簽用于控制頁面的跳轉動作。
        要在JSP頁面中使用核心標簽庫,首先需要導入核心標簽的URI:
    <% taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
        1)通用標簽(輸入輸出):<c:set>、<c:out>、<c:remove>
        §<c:set>標簽主要用來將變量儲存至JSP隱式對象中或JavaBean的 屬性中,其語法為:
    語法一:將value的值儲存至范圍為scope的VarName變量之中:
    <c:set value="value" var="varName" [scope="{page|request|session|application}"]/>
    語法二:將本體內容儲存至范圍為scope的VarName變量之中:
    <c:set var="varName" [scope="{page|request|session|application}]">
    本體內容
    </c:set>
    value:要被儲存的值
    var:欲存入的變量名稱
    scope:指定變量的JSP范圍
        §<c:out>w標簽主要用來顯示數據的內容,就像<%=JSP表達式%>一樣,其語法為:
    語法一:沒有本體(body)內容:
    <c:out value="value" [escapeXml="{true|false}" [default="defaultValue"]/>
    語法二:有本體內容:
    <c:out value="value" [escapeXml="{true|false}"/>
    defaultValue
    </c:out>
    value:需要顯示出來的值。
    Default:如果value的值為null,則顯示default的值。
    escapeXml:是否轉換特殊字符,如:
    <轉換成&lt;。
        §<c:remove>標簽主要用來移除變量,其語法為:
    <c:remove var="varname" [scope="{page|request|session|application}"]/>
    var:欲移除的變量名稱。
    scope:var變量的JSP范圍。
        2)通用標簽使用演示:
    <%@ page contentType="text/html;charset=gbk" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <c:set value="hello" var="sessionvar1" scope="session"/>
    <c:set var="sessionvar2" scope="session">
     world!
    </c:set>
    存儲后顯示:
    <br>
    <c:out value="${sessionScope.sessionvar1}"/>
    <c:out value="${sessionScope.sessionvar2}"/><br>
    <c:remove var="sessionvar2" scope="session"/>
    刪除后顯示:
    <br>
    <c:out value="${sessionScope.sessionvar1}"/>
    <c:out value="${sessionScope.sessionvar2}"/>
        3)條件標簽:<c:if>、<c:choose>、<c:when>、<c:otherwise>等。
        §<c:if>標簽用于有條件地執行代碼,如果test屬性的值為true,則會執行<c:if>標簽的標簽體。這是一個容器標簽,其語法為:
    語法一:沒有標簽體內容(body):
    <c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
    語法二:有標簽體內容:
    <c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
    </c:if>
    test:如果表示的結果為true,則執行標簽體內容,false則相反。
    var:用來存儲test運算后的結果,即true或false。
    scope:變量的JSP范圍。
        §<c:choose>標簽類似于java中的switch語句,它用于執行條件語句塊。
    <c:choose>
    本體內容(
    <when><otherwise
    </c:choose
    >
        §<c:when>標簽的用途和switch語句中的case一樣。
        §<c:otherwise>標簽,相當于switch語句中的default。
        4)條件標簽演示:
    <%@ page contentType="text/html;charset=gbk" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%
    int i=(int)(Math.random()*10);
    pageContext.setAttribute(
    "signalStrength",new Integer(i));
    %>
    <c:if test="${pageScope.signalStrength<5}" var="value1"/>
    <c:if test="${pageScope.signalStrength>5}">
        
    <c:set var="value2" value="true" scope="page"/>
    </c:if>
    <c:choose>
        
    <c:when test="${pageScope.value1 }">
            產生的隨機數小于5.
        
    </c:when>
        
    <c:when test="${pageScope.value2 }">
            產生的隨機數大于5.
        
    </c:when>
        
    <c:otherwise>
            產生的隨機數等于5.
        
    </c:otherwise>
    </c:choose>
        5)迭代標簽:<c:forEach>標簽和<c:forTokens>標簽等。
        §<c:forEach>標簽為循環控制,它可以將集合中的成員循序瀏覽一遍,動作方式為當條件符合時,就會重復執行<c:forEach>標簽的標簽體內容。
    <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
    本體內容
    </c:forEach>
    語法二:迭代指定的次數:
    <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
    本體內容
    </c:forEach>
    var:用來存放當前指到的成員。
    items:被迭代的集合對象(包括:Arrays、Collection、Iterator、Enumeration、Map)。
    varStatus:用來存放當前指到的相關成員信息。
    begin:開始的位置,若有,其值必須大于等于0.
    end:結束的位置,默認值最后一個成員,若有,end必須大于begin。
    step:每次迭代的間隔數,若有,必須大于等于0。
        §<c:forTokens>標簽用來瀏覽一字符串中所有的成員,其成員是由定義符號(delimiters)所分隔的。使用語法如下:
    <c:forTokens items="stringOfTokens" delimes="delimiters" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
    本體內容
    </c:forTokens>
    var:用來存放現在指到的成員。
    items:被迭代的字符串。
    delims:定義用來分割字符串的字符。
    varStatus:用來存放現在指到的相關成員信息。
    begin:開始的位置,若有,必須大于等于0.
    end:結束的位置,若有必須大于begin。
    step:每次迭代的間隔數,若有,step必須大于等于0.
        6)迭代標簽演示:
    <%@ page contentType="text/html;charset=gbk" import="java.util.*"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%
        
    String[] fruits={"蘋果","葡萄","雪梨","白桃","柿子"};
        pageContext.setAttribute(
    "fruits",fruits);
        
        Vector books
    =new Vector();
        books.add(
    "《西游記》");
        books.add(
    "《水滸傳》");
        books.add(
    "《三國演義》");
        books.add(
    "《紅樓夢》");
        pageContext.setAttribute(
    "books",books);
        
        
    String str="太陽、星星、月亮;地球|天空";
        pageContext.setAttribute(
    "str",str);
        
    %>
    <h3>數組迭代</h3>
    <c:forEach var="fruit" items="${fruits}">
    <c:out value="${fruit}"/>
    </c:forEach>
    <h3>集合類迭代</h3>
    <c:forEach var="book" items="${books}">
    <c:out value="${book}"/>
    </c:forEach>
    <h3>自變量循環</h3>
    <c:forEach var="i" begin="1" end="10" step="2">
    <c:out value="${i}"/>
    </c:forEach>
    <h3>字符串分隔</h3>
    <c:forTokens items="${str}" delims="、;|" var="substr">
    <c:out value="${substr}"/>
    </c:forTokens>
    5)URL標簽,包括<c:import>、<c:redirect>和<c:url>等。
        §<c:import>標簽可以把其他靜態或動態文件包含至本身JSP網頁。它和JSP動作指令<jsp:include>最大的差別在于:<jsp:include>只能包含和自己同一個WEB應用下的文件;而<c:import>除了能包含和自己同一人WEB應用的文件外,也可以包含不同WEB應用或者是其他網站的文件。其語法如下:
    語法一:
    <c:import url="url" [context]="context" [var="varName"] [scope="{page|request|session|application}"] [charEncoding="charEncoding"]>
    本體內容
    </c:import>
    語法二:
    <c:import url="url" [context="context"] varReader="varReader" [charEncoding="charEncoding"]>
    本體內容
    <c:import>
    url:被包含文件的地址。
    context:在相同web容器下,其他WEB應用必須以“/”開頭。
    var:儲存被包含的文件內容(以String類型存入)。
    scope:變量的JSP作用域。
    charEncoding:被包含文件內容的編碼格式。
    varReader:儲存被包含文件的內容。
    例如:
    <c:import url="http://www.163.com"/>的功能就是用<c:import>把http://www.163.com的內容加到網頁中。
        §<c:url>標簽主要用來產生一個URL。
    語法一:沒有標簽體內容:
    <c:url value="value" [context="context"] [var="varName"] [scope="{page|request|session|application}"]/>
    語法二:有標簽體內容,代表查詢字符串參數:
    value:執行的URL。
    context:在相同WEB容器下,其他WEB應用必須以“/”開頭。
    var:儲存被包含文件的內容(以String類型存入)。
    scope:變量的JSP作用域。
    例如:
    <c:url value="http://dog.xiaonei.com/pet-profile.do">
    <c:param name="portal" value="homeFootprint"/>
    <c:param name="id" value="233227104"/>
    </c:url>
    會產生一個到達我的校內的狗狗的鏈接地址。
        §<c:redirect>標簽可以將客戶端的請求從一個JSP網頁導向到其它文件。語法如下:
    主站蜘蛛池模板: 中国黄色免费网站| 国产V片在线播放免费无码| 99免费视频观看| 久久久久久亚洲av成人无码国产| 黄网站色视频免费观看45分钟| 午夜国产羞羞视频免费网站| 亚洲日本一线产区和二线| 最近高清国语中文在线观看免费| 亚洲av无码国产综合专区| 100000免费啪啪18免进| 亚洲小视频在线播放| 曰批视频免费30分钟成人| 亚洲AV一二三区成人影片| 国产成人A在线观看视频免费| 亚洲kkk4444在线观看| 性xxxx视频播放免费| 国产亚洲一卡2卡3卡4卡新区| 日日AV拍夜夜添久久免费| 美女被免费视频网站| 国产亚洲人成网站在线观看| a毛片久久免费观看| 亚洲国产一区国产亚洲| 91免费资源网站入口| 精品久久久久久亚洲中文字幕| 亚洲成人影院在线观看| 一个人晚上在线观看的免费视频| 亚洲中文字幕久久精品无码喷水| 免费91最新地址永久入口| 亚洲精品中文字幕乱码| 免费无遮挡无码视频网站| 男女男精品网站免费观看| 亚洲啪啪AV无码片| 久久久久久精品免费看SSS| 亚洲成人激情小说| 亚洲国产综合人成综合网站| 久久国产精品2020免费m3u8| 亚洲国产视频久久| MM131亚洲国产美女久久| 51在线视频免费观看视频| 国产亚洲成在线播放va| 亚洲AV无码久久精品狠狠爱浪潮|