包含jstl中xml的choose的詞條

本文目錄一覽:

jsp中的JSTL與EL表達式用法及區別

JSTL (JSP Standard Tag Library ,JSP標準標籤庫)

JSTL標籤庫分為5類:JSTL核心標籤庫、JSTL函數標籤庫、資料庫標籤庫、I18N格式化標籤庫、XML標籤庫。

JSTL的核心標籤庫主要包括:表達式操作、流程式控制制、迭代操作和URL操作。以下是JSTL常用標籤的用法:

一、表達式操作

1、c:out

作用:用於顯示數據的內容。

語法1:沒有本體內容

c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”] /

語法2:有本體內容

c:out value=”value” [escapeXml=”{true|false}”]

default value

/c:out

屬性說明:

value:需要顯示出來的值。

default:如果value的值為null時,則顯示default指定的值。

escapeXml:是否轉換特殊字元,默認為true。即默認會將、、』、」 和 轉換為 、、’、”和amp。如果設為false,則不進行轉換。

2、c:set

作用:用於將變數的值存儲在JSP範圍中或JavaBean的屬性中。

語法1:將value的值存儲在範圍為scope的varName變數中

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

語法2:將本體內容的數據存儲在範圍為scope的varName變數中

c:set var=”varName” [scope=”{page|request|session|application}”]

…本體內容

/c:set

語法3:將value的值存儲在target對象的property屬性中

c:set value=”value” target=”target” property=”propertyName” /

語法4:將本體內容的數據存儲在target對象的property屬性中

c:set target=”target” property=”propertyName”

…本體內容

/c:set

屬性說明:

value:要被存儲的值。

var:欲存入的變數名稱。

scope:var變數的JSP範圍。默認為page範圍。

target:為一JavaBean或Map對象。

如果「target」是一個Map,「property」指定的是該Map的一個鍵;如果「target」是一個bean,「property」指定的 是該bean的一個成員欄位。

如果「target」表達式為null,容器會拋出一個異常。

如果「target」表達式不是一個Map或bean,容器會拋出一個異常。

如果「target」表達式是一個bean,但是這個bean沒有與「property」匹配的成員欄位,容器會拋出一個異常。

property:指定的target對象的屬性。

3、c:remove

作用:移除變數。

語法:c:remove var=”varName” [scope=”{page|request|session|application}”] /

屬性說明:

var:要移除的變數。

scope:var變數所在的JSP範圍,默認為page範圍。

4、c:catch

作用:用於處理產生錯誤的異常情況,並將錯誤信息存儲起來。

語法: c:catch [var=”varName”]

…欲抓取錯誤的部分

/c:catch

屬性說明:

var:將錯誤信息存儲在指定的變數中,可以通過該變數獲取錯誤信息。

二、流程式控制制

1、c:if

作用:類似if判斷語句,用於表達式判斷。

語法1:沒有本體內容

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

屬性說明:

test:當該屬性中的表達式運算結果為true,則會執行本體內容,為false則不執行,該標籤必須要有test屬性。

var:存儲test的運算結果,為true或false。

scope:var變數的JSP範圍。

2、c:choose、c:when、c:otherwise

作用:這三個標籤必須組合使用,用於流程式控制制。

範例:

c:choose

c:when test=”${condition1}”

condition1為true

/c:when

c:when test=”${ condition2}”

condition2為true

/c:when

c:otherwise

condition1和condition2都為false

/c:otherwise

/c:choose

範例說明:當condition1為true時,會顯示「condition1為true」;當condition1為false且condition2為true時,會顯示「condition2為true」,如果兩者都為false,則會顯示「condition1和condition2都為false」。

注意:若condition1和condition2的運算結果都為true時,此時只會顯示”condition1為true”。

限制說明:

a、c:when和c:otherwise標籤必須在c:choose和/c:choose之間使用。

b、在同一個c:choose中,c:otherwise必須是最後一個標籤,且只能有一個c:otherwise標籤。c:when可以有多個。

c、在同一個c:choose中,當所有c:when的test都為false時,才執行c:otherwise的本體內容。

三、迭代操作

1、c:forEach

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

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

c:forEach items=”collection” [var=”varName”] [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

屬性說明:

items:被迭代的集合對象。

var:存放當前指到的集合對象中的成員。

varStatus:存放當前指到的成員的相關信息。(index:當前指到的成員的索引;count:當前總共指到成員的總數;first:當前指到的成員 是否為第一個成員;last:當前指到的成員是否為最後一個成員)。

begin:迭代開始的位置,默認為0。

end:迭代結束的位置,默認為最後。

step:每次迭代的間隔數,默認為1。

範例:

%

int atts[] = {1,2,3,4,5,6,7,8,9,10};

request.setAttribute(“atts”, atts);

%

c:forEach items=”${atts}” var=”item” begin=”0″ end=”9″ step=”1″

${item}/br

/c:forEach

此標籤也可以用於普通的循環控制,與for循環一樣。如:

c:forEach begin=”1″ end=”10″ var=”item”

${item}/br

/c:forEach

2、c:forTokens

作用:用指定分隔符分隔一字元串,并迭代分隔後的數組。

語法: c:forTokens items=”stringOfTokens” delims=”delimiters” [var=”varName”] [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]

本體內容

/c:forTokens

屬性說明:

items:被分隔并迭代的字元串。

delims:用來分隔字元串的字元。

var:存放當前指到的成員。

varStatus:存放當前指到的成員的相關信息。(index:當前指到的成員的索引;count:當前總共指到成員的總數;first:當前指到的成員 是否為第一個成員;last:當前指到的成員是否為最後一個成員)。

begin:迭代開始的位置,默認為0。

end:迭代結束的位置,默認為最後。

step:每次迭代的間隔數,默認為1。

範例1:

c:forTokens items=”A,B,C,D,E” delims=”,” var=”item”

${item}

/c:forTokens

用「,」號分隔字元串,并迭代輸出分隔後的字元串數組,輸出結果為「ABCDE」。

範例2:

c:forTokens items=”A,B;C-D,E” delims=”,;-” var=”item”

${item}

/c:forTokens

delims中指定了三個分隔符「,」、「;」和「-」,可見我們一次可以設定所有想當做分隔字元串用的字元。輸出結果依然為「ABCDE」。

四、URL操作

1、c:import

作用:將其他靜態或動態文件包含到本身JSP網頁中。不但可以包含同一個web application下的文件,還可以包含其他web application或其他網站的文件。

語法:

c:import url=”url” [var=”varName”] [scope=”{page|request|session|application}”]

[c:param name=”paramName” value=”paramValue”/]

/c:import

屬性說明:

url:要包含至本身JSP網頁的其他文件的URL。必選

var:將包含進來的其他文件以字元串的形式存放到指定的變數中。可選

scope:var變數的作用範圍。可選

c:param:可選子標籤,用於向包含進來的其他網頁文件傳遞參數。

範例:

c:import url=””

c:param name=”test” value=”1234″ /

/c:import

說明:當c:import標籤中未指定var變數時,會直接將包含進來的其他網頁文件內容顯示出來,如果指定了var變數,則會將內容存放到var變數中,不顯示。

2、c:url

作用:生成一個URL。

語法:

c:url value=”url” [context=”expression”] [var=”name”] [scope=”scope”]

[c:param name=”expression” value=”expression”/]

/c:url

範例1:

a href=”c:url value=index.jsp’/”index page/a

在a超鏈接標籤中生成一個URL,指向index.jsp。

範例2:

c:url value=”index.jsp”

c:param name=”keyword” value=”${searchTerm}”/

c:param name=”month” value=”02/2003″/

/c:url

生成一個URL,並傳遞參數,生成的結果為index.jsp?keyword=*month=02/2003,*代表傳遞的searchTerm的值。

3、c:redirect

作用:可以將客戶端的請求從一個JSP網頁導向到其他文件。

語法:

c:redirect url=”url”

[param name=”paramName” value=”paramValue”]

/c:redirect

將請求導向URl指向的其他文件。

五、I18N格式化標籤庫

使用I18N格式化標籤之前,需先插入以下指令:

%@ taglib prefix=”fmt” uri=”” %

1、fmt:formatNumber

作用:將數字格式化成數字、貨幣、百分比

語法:

fmt:formatNumber value=”value” [var=”varName”] [type=”{number|curreny|percent}”] [maxFractionDigits=”3″] [groupingUsed=”{true|false}”]/

屬性說明:

value:需要進行格式化的值

var:值的另一個變數聲明

maxFractionDigits:保留的小數點個數

2、fmt:parseNumber

作用:將字元串型的數字、貨幣、百分比格式化成數字

語法:

fmt:parseNumber value=”¥6789.36″ [var=”result”] [type=”{number|curreny|percent}”]

屬性說明:

value:需要進行格式化的值

var:值的另一個變數聲明

3、fmt:formatDate

作用:格式化時間和日期

4、fmt:parseDate

作用:將字元串形式的時間和日期轉換成日期時間類型。

5、fmt:setTimeZone

作用:在JSP 網頁中設置默認時區。

6、fmt:timeZone

作用:在JSP網頁中為該標籤體內的代碼段設置時區。

7、fmt:setLocale

作用:在JSP 網頁中設置語言地區。

8、fmt:requestEncoding

作用:在JSP 網頁中設置請求所採用的編碼方式,等價於JSP中的request. setCharacterEncoding(String encoding)。

9、fmt:setBundle

作用:設置默認的消息資源。

10、fmt:message

作用:在指定的消息資源中按關鍵字取出相應的消息內容。

11、fmt:param

作用:在從消息資源中取出消息內容時,為消息內容設置動態參數。

12、fmt:bundle

作用:為該標籤體內的代碼段設置一個消息資源。

他們的區別:

EL相關概念JSTL一般要配合EL表達式一起使用,來實現在jsp中不出現java代碼段。所以我們先來學習EL表達式EL主要用於查找作用域中的數據,然後對它們執行簡單操作;它不是編程語言,甚至不是腳本編製語言。通常與 JSTL 標記一起作用,能用簡單而又方便的符號來表示複雜的行為。EL基本格式EL表達式的格式:用美元符號($)定界,內容包括在花括弧({})中;例如: ${loginInfoBean.suser}此外,您可以將多個表達式與靜態文本組合在一起以通過字元串並置來構造動態屬性值;例如:Hello {loginInfoBean.suser} ${loginInfoBean.spwd}EL語法組成-標識符EL表達式由標識符、存取器、文字和運算符組成。標識符用來標識存儲在作用域中的數據對象。EL 有 11 個保留標識符,對應於 11個EL隱式對象。除了11隱式對象外,假定所有其它標識符都用來標識作用域的變數。標識符例:${abc} 相當於%=pageContext.findAttribute(「abc」)%${og_1} %=pageContext.findAttribute(「og_1」)%…等等;就是說{}內的標識符除了11個保留字之外都表示作用域中的數據對應的名.${requestScope}中的requestScope是11個EL隱式對象之一,它不再表示作用域中數據,而是表示request作用域;EL隱藏對象pageContext PageContext 實例對應於當前頁面的處理pageScope 與頁面作用域屬性的名稱和值相關聯的Map類requestScope 與請求作用域屬性的名稱和值相關聯的Map類sessionScope 與會話作用域屬性的名稱和值相關聯的Map類applicationScope 與應用程序作用域屬性的名稱和值相關聯的Map類param 按名稱存儲請求參數的主要值的 Map 類paramValues 將請求參數的所有值作為 String 數組存儲的 Map 類Header 按名稱存儲請求頭主要值的 Map 類headerValues 將請求頭的所有值作為 String 數組存儲的 Map 類cookie 按名稱存儲請求附帶的 cookie 的 Map 類initParam 按名稱存儲 Web 應用程序上下文初始化參數的Map類EL存取器存取器用來檢索對象的特性或集合的元素。存取器: 通過 「[]」 或 「.」 符號獲取相關數據例:${userBean.suser} 或 ${userBean[「suser」]}//獲取輸出bean中的suser屬性值;${mcType[「id」]} //獲取map中key為id對應的值;EL運算符運算符允許對數據和文字進行組合以及比較。EL運算符:類別 運算符算術運算符 +、-、*、/(或 div)和 %(或 mod)關係運算符 ==(或eq)、!=(或ne)、(或lt)、(或gt)、=(或le) 和 =(或ge)邏輯運算符 (或 and)、||(或or)和 !(或 not)驗證運算符 empty驗證運算符(empty):對於驗證數據特別有用。empty 運算符採用單個表達式作為其變數(也即,${empty input}),並返回一個布爾值,該布爾值表示對表達式求值的結果是不是「空」值。求值結果為 null 的表達式被認為是空,即無元素的集合或數組。如果參數是對長度為零的 String 求值所得的結果,則 empty 運算符也將返回 true。EL文字文字表示固定的值 — 數字、字元、字元串、布爾型或空值。在 EL 表達式中,數字、字元串、布爾值和 null 都可以被指定為文字值。字元串可以用單引號或雙引號定界。布爾值被指定為 true 和 falseJSTL是什麼JSTL(JSP Standard Tag Library,JSP標準標籤庫)是一個不斷完善的開放源代碼的JSP標籤庫,是由apache的jakarta小組來維護的。JSTL1.0 由四個定製標記庫(core、format、xml 和 sql)和一對通用標記庫驗證器組成。core 標記庫提供了定製操作,通過限制了作用域的變數管理數據,以及執行頁面內容的迭代和條件操作。它還提供了用來生成和操作 URL 的標記。format 標記庫定義了用來格式化數據(尤其是數字和日期)的操作。它還支持使用本地化資源束進行JSP頁面的國際化。xml 庫包含一些標記,這些標記用來操作通過XML表示的數據,而 sql 庫定義了用來查詢關係資料庫的操作。 兩個 JSTL 標記庫驗證器允許開發人員在其 JSP 應用程序中強制使用編碼標準。如果要使用JSTL,則必須引用jstl.jar和 standard.jar兩個包。為什麼要用JSTL我們JSP用於開發信息展現頁非常方便;也可以嵌入java代碼(scriptlet、表達式和聲明)代碼用來實現相關邏輯控制。看下面程序。但這樣做會帶來如下問題:jsp維護難度增加;出錯提示不明確,不容易調試;分工不明確;(即jsp開發者是美工,也是程序員);最終增加程序的開發成本;解決上面的問題可以使用定製標記庫,JSTL使JSP開發者可以減少對腳本元素的需求,甚至可以不需要它們,從而避免了相關的維護成本。使分工更明確。% if (session.getAttribute(「user」).equals(「member」)) {%pWelcome, member!/p% } else { %pWelcome, guest!/p% } %JSTL一般配合EL一起使用,因此先看看EL.JSTL部署在EE應用程序中部署JSTL有兩種方式:已存在的工程上部署將jstl.jar和standard.jar兩個包考到現有工程WebRoot / WEB-INF / lib 目錄下將相關的 .tld文件考到現有工程 WebRoot /WEB-INF 目錄下;也可通過eclipse在已存在

怎麼用jstl截取字元串

jstl以前在jsp頁面截取字元串時都是用Java表達式,感覺在jsp頁面用多了Java表達式不是很好(那時主要是不知道jstl標籤怎麼去截取字元串,所以就只能用Java表達式了)。今天在網上找了些相關資料,原來jstl標籤是可以截取字元串的,主要有兩種方法:

一、用jstl原有的標籤庫中方法(fn函數)

[html] view plain copy

c:set var=”testStr” value=”做一個截取字元串長度的測試”

c:choose

c:when test=”${fn:length(testStr) 10}”

c:out value=”${fn:substring(testStr, 0, 10)}……” /

/c:when

c:otherwise

c:out value=”${testStr}” /

/c:otherwise

/c:choose

註:記得要引用標籤庫

%@ taglib uri=”” prefix=”c”%

%@ taglib uri=”” prefix=”fn”%

JSTL中的web.xml怎樣配置

1:如果你沒有在web.xml中配置的話,此刻你是否連接外網,如果不是出於聯網的狀態不可以。

2:如果沒有網,就要手動的讓web.xml文件載入這個標籤的內容,這些東西都是在startand.jar中,解壓這個包,裡面的c.tld、fn.tld等都要引入web.xml中,具體的引入方式如下:

jsp-config

taglib

taglib-uri;/taglib-uri

taglib-location/WEB-INF/fmt.tld/taglib-location

/taglib

taglib

taglib-uri;/taglib-uri

taglib-location/WEB-INF/c.tld/taglib-location

/taglib

taglib

taglib-uri;/taglib-uri

taglib-location/WEB-INF/fn.tld/taglib-location

/taglib

/jsp-config

試試看吧。

JSTL中的web.xml怎樣配置?

1:如果您沒有在web上配置。xml,如果不是為了網路的狀態,此時是否連接到外部網路,沒連的話不可以。

2:如果沒有網路,就使用網路手冊。要載入這個標籤的內容的XML文件,這些東西是在startand中。罐子,打開袋子,裡面的c。t ld,fn。TLD引入了web、XML等,具體介紹如下:

JSP -配置。

標籤

taglib uri – / taglib uri – 。

taglib -位置 / WEB – INF/FMT。TLD / taglib -位置。

/ a taglib。

標籤

taglib uri – / taglib uri – 。

taglib -位置 / WEB – INF/c。tld / taglib -位置。

/ a taglib。

標籤

taglib uri – / taglib uri – 。

taglib -位置 / WEB – INF/fn。TLD / taglib -位置。

/ a taglib。

/ JSP – config 。

如何在Eclipse使用jstl標籤

首先下載jstl.jar和standar.jar

2.在你web.xml中加入

jsp-config

taglib

taglib-uri;/taglib-uri

taglib-location/WEB-INF/c.tld/taglib-location

/taglib

/jsp-config

3.在jsp頁面可以進行調用:

%@ taglib uri=”” prefix=”c”%

table border=”1″ width=”80%” align=”center”

tr

td序號/td

td姓名/td

td密碼/td

td郵件/td

/tr

c:forEach items=”${list}” var=”dto” varStatus=”statu”

c:choose

c:when test=”${statu.index%2==0}”

tr bgcolor=”red”

td${statu.count}/td

td${dto.username}/td

td${dto.password}/td

td${dto.email }/td

/tr

/c:when

c:otherwise

tr

td${statu.count}/td

td${dto.username}/td

td${dto.password}/td

td${dto.email }/td

/tr

/c:otherwise

/c:choose

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/206698.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-08 14:16
下一篇 2024-12-08 14:16

相關推薦

  • XML讀取YML中間加點,出現亂碼該如何解決

    本文將從多個方面對XML讀取YML中間加點,出現亂碼做詳細的闡述。 一、XML、YML、點的概念 在使用之前,我們需要了解一些基本概念: XML,即可擴展標記語言,是一種標記語言,…

    編程 2025-04-27
  • XML解析之loadxml方法介紹

    一、概述 XML是一種標記語言,它可以被用來存儲和傳輸數據。在Web應用程序中,經常會涉及將XML文檔解析為一個對象,然後使用這個對象以某種方式進行操作。loadxml方法就是XM…

    編程 2025-04-25
  • XML格式化工具xmlformat的詳解

    一、xmlformat簡介 xmlformat是一款方便、快捷、易用的XML格式化工具,能夠將XML文檔進行格式化處理,使其易於閱讀、理解和維護。它具有以下特點: 支持自適應縮進,…

    編程 2025-04-24
  • 詳細闡述tomcat-users.xml

    一、tomcat-users.xml文件格式介紹 <tomcat-users> <role rolename=”manager-gui”/> <rol…

    編程 2025-04-23
  • Java對象轉XML詳解

    在Java編程中,對象的序列化和反序列化是非常常見的操作。而XML是一種廣泛使用的數據交換格式,因此將Java對象轉化為XML已經成為了一個必備的技能。本文將從多個方面對Java對…

    編程 2025-04-23
  • Python讀取XML文件指南

    在Python中讀取XML文件是非常普遍的任務,因為現代應用程序經常使用XML作為它們的配置和數據存儲格式。對於初學者來說,這可能會有些令人困惑,因此,本文將介紹Python如何讀…

    編程 2025-04-22
  • XML中的小於號轉義詳解

    一、XML的基本概念 XML(Extensible Markup Language)意為可擴展標記語言,它是一種用於存儲和傳輸數據的標記語言。XML是一種純文本文件格式,使用標籤來…

    編程 2025-04-22
  • pythonxmltodict:以字典方式處理XML

    在Python編程中,如果要進行XML操作,可以使用xml.etree.ElementTree和lxml庫來完成,不過這兩個庫都需要額外的代碼來將XML轉換為Python數據結構,…

    編程 2025-04-22
  • Weblogic.xml詳解

    Weblogic.xml是Weblogic Server的配置文件,用於定義Weblogic Server的配置選項。本文將從多個方面對Weblogic.xml進行詳細闡述。 一、…

    編程 2025-04-18
  • 深入了解web.xml模板

    web.xml是Java Web應用程序的配置文件,用於配置應用程序如何處理請求和響應,也可以配置諸如監聽器和過濾器等應用程序組件。在本文中,我們將從多個方面詳細討論web.xml…

    編程 2025-04-12

發表回復

登錄後才能評論