日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP——JSTL语法总结

發布時間:2024/9/30 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP——JSTL语法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、JSTL概述:

1、什么是JSTL?

  • JSTL 全名為 JavaServer Pages Standard Tag Library, 它主要提供給開發人員一個標準通用的標簽函數庫。

2、JSTL的作用:

  • Web程序開發人員能夠利用JSTL和EL來開發Web程序,取代傳統直接在頁面上嵌入Java程序的做法,以提高程序可讀性、維護性和方便性。

3、JSTL所提供的標簽函數庫主要分為五大類:

  • 核心標簽庫 (Core tag library)
  • SQL 標簽庫 (SQL tag library)
  • I18N 格式標簽庫 (internationalization )
  • XML 標簽庫 (XML tag library)
  • 函數標簽庫 (Functions tag library)
  • 其中核心標簽庫是最常用的,這里只總結下核心標簽庫。

    4、使用標簽的方法:

    <%@taglib tagdir/uri="標簽位置" prefix="縮略名"%> JSTL前綴URI范例
    核心標簽庫chttp://java.sun.com/jsp/jstl/core<c:out>
    SQL標簽庫sqlhttp://java.sun.com/jsp/jstl/sql<sql:query>
    I18N 標簽庫fmthttp://java.sun.com/jsp/jstl/fmt<fmt:formatDate>
    XML標簽庫xmlhttp://java.sun.com/jsp/jstl/xml<x:forBach>
    函數標簽庫fnhttp://java.sun.com/jsp/jstl/functions<fn:split>

    例 (使用核心標簽庫):

    <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html>
    二、JSTL核心標簽庫:

    JSTL的核心標簽庫(Core)主要操作有:表達式操作、流程控制和迭代操作。

    1、表達式操作:

    表達式操作主要有四種:<c:out>、<c:set>、<c:remove>、<c:catch>

    1. <c:out>

    • <c:out>主要用來顯示數據的內容,等效于 <%= scripting-language %>

    例:

    Hello ! <c:out value="${username}" />

    語法
    1:沒有本體(body)內容

    <c:out value=“value” [escapeXml={true|false}] [default=“默認值"] />

    2:有本體內容

    <c:out value="value" [escapeXml="{true|false}"]>默認值</c:out>

    其中

    2. <c:set>

    • <c:set>用來將變量儲存至 JSP 范圍中或 JavaBean 的屬性中。

    語法
    1:將value的值存至范圍為scope的varName變量之中

    <c:set value="value" var="varName" [scope="{ page|request|session|application }"]/>

    若value為null時:將由儲存變量改為移除變量

    2:將本體內容存至范圍為scope的varName變量之中

    <c:set var="varName" [scope="{ page|request|session|application }"]> 本體內容 </c:set>

    3:將 value 的值儲存至 target 對象的屬性中

    < c:set value="value" target=“${target}" property="propertyName" />

    若value為null時,則property 指定的屬性為null

    4:將本體內容的數據儲存至 target 對象的屬性中

    <c:set target="target" property="propertyName"> 本體內容 </c:set>

    target常見為JavaBeans類型
    target為null或不是JavaBean類型,將產生異常。

    其中

    3. <c:remove>
    <c:remove>主要用來移除變量

    語法:

    <c:remove var="varName" [scope="{ page|request|session|application }"] />


    若不設定 scope,則<c:remove>將會從 Page、 Request、Session 及 Application 中順序尋找是否存在名稱為 var值 的數據,若能找到時, 則將它移除掉,反之則不會做任何的事情。

    4、<c:catch>
    <c:catch>主要用來處理產生錯誤的異常狀況,并且將錯誤信息儲存起來。

    語法:

    <c:catch [var="varName"] > 欲抓取錯誤的部分 </c:catch>

    <c:catch>將可能發生錯誤的部分放在<c:catch>和</c:catch>之間。如果真的發生錯誤,可以將錯誤信息儲存至varName變量中,例如:

    <c:catch var="message"> 可能發生錯誤的部分 </c:catch>

    當錯誤發生在<c:catch>和</c:catch>之間時,只有<c:catch>和</c:catch>之間的程序會被中止忽略,但整個網頁不會被中止。

    2、程序流程控制:

    1. <c:if>

    語法 1:沒有本體內容(body)

    <c:if test="testCondition" var="varName"[scope="{page|request|session|application}"]/>

    語法 2:有本體內容

    <c:if test="testCondition" [var="varName"][scope="{page|request|session|application}"]> 具體內容 </c:if>

    屬性:

    2. <c:choose>

    • <c:choose>本身只當做 <c:when> 和 <c:otherwise> 的父標簽。

    語法:

    <c:choose> 本體內容( <when><otherwise> ) </c:choose>

    <c:choose>的本體內容只能有:

    • 空白
    • 1 或多個 <c:when>
    • 0 或1個 <c:otherwise>

    說明:
    使用<c:when>和<c:otherwise>做流程控制時,兩者都必須為<c:choose>的子標簽。
    即:

    <c:choose><c:when></c:when><c:otherwise></c:otherwise> </c:choose>

    3. <c:when>

    • <c:when> 表示當滿足某一條件時執行本體內容。

    語法:

    <c:when test="testCondition" > 本體內容 </c:when>

    限制:

    • <c:when>必須在<c:choose>和</c:choose>之間。
    • 在同一個<c:choose>中,<c:when>必須在<c:otherwise>之前。

    說明:

    • <c:when>必須有 test 屬性,當 test 中的表達式結果為 true 時,則會執行本體內容;如果為false 時,則不會執行。

    3. <c:otherwise>

    • 在同一個 <c:choose> 中,當所有 <c:when> 的條件都沒有成立時,則執行 <c:otherwise> 的本體內容 。

    語法:

    <c:otherwise> 本體內容 </c:otherwise>

    限制:

    • <c:otherwise> 必須在 <c:choose> 和 </c:choose>之間
    • 在同一個 <c:choose> 中時,<c:otherwise> 必須為最后標簽

    說明:

    • 在同一個 <c:choose> 中,假若所有 <c:when> 的 test 屬性都不為 true 時,則執行<c:otherwise> 的本體內容
    3、迭代操作:

    1. <c:forEach>

    • <c:forEach> 為循環控制,它可以將集合(Collection)中的成員循序瀏覽一遍。運行方式為當條件符合時,就會持續重復執行<c:forEach>的本體內容 。

    語法 1:迭代一集合對象的所有成員

    <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> 本體內容 < /c:forEach>

    語法 2:迭代指定的次數

    <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"] > 本體內容 </c:forEach>

    其中

    限制:

    • 假若有 begin 屬性時,begin 必須大于等于 0。
    • 假若有 end 屬性時,必須大于 begin。
    • 假若有 step 屬性時,step 必須大于等于 0。

    Null 和 錯誤處理:

    • 假若items為null時,則表示為一空的集合對象。
    • 假若begin大于或等于items大小時,則迭代不運算。

    說明:

    • 如果要循序瀏覽一個集合對象,并將它的內容顯示出來,就必須有 items 屬性。

    2. <c:forTokens>

    • <c:forTokens> 用來瀏覽一字符串中所有的成員,其成員是由定義符號(delimiters)所分隔的。

    語法:

    <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"][varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"] >本體內容 </c:forTokens>

    其中:

    限制:

    • 假若有begin屬性時,begin 必須大于等于 0。
    • 假若有end屬性時,必須大于 begin。
    • 假若有step屬性時,step 必須大于等于 0。

    Null 和 錯誤處理:

    • 若items為null時,則表示為一空的集合對象。
    • 若begin大于或等于items的大小時,則迭代不運算。

    說明:

    • items的內容必須為字符串;而 delims 是用來分割items中定義的字符串之字符。

    例子:
    1、使用核心標簽庫輸入輸出方法:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> //插入使用通用標簽的指令 <body> <c:set var= "example" value="${100+1}" scope="session" /> //set 標簽用于給變量設置值和作用域 <c:out value="${example}"/> //out 標簽顯示值的結果 <c:remove var= "example" scope="session"/> //remove 標簽用于刪除具有作用域的變量 </body>

    2、使用核心標簽庫訪問JavaBean

    • 創建JavaBean類Student,包含屬性name和age。創建JSP頁面,在其中訪問JavaBean,且使用核心標簽庫設置屬性值和讀取屬性值。
    <%@page import="cn.javabean.Student"%> <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSTL</title> </head> <body><jsp:useBean id="stu" class="cn.javabean.Student" scope="page"></jsp:useBean><c:set value="趙五" target="${stu}" property="name"></c:set><c:set target="${stu}" property="age">19</c:set><c:set value="張三" var="name1" scope="session"></c:set><c:set var="name2" scope="session">李四</c:set>從Bean中獲取對象person的name值:<c:out value="${stu.name}"></c:out><br /> 從Bean中獲取對象person的age值:<c:out value="${stu.age}"></c:out><hr />從session中得到的值:${sessionScope.name1}<br /> 從session中得到的值:${sessionScope.name2}</body> </html>

    🆗,JSTL的語法知識大致就這么多。

    總結

    以上是生活随笔為你收集整理的JSP——JSTL语法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。