一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

JSTL與Struts的結(jié)合(五)

 WindySky 2006-12-29

JSTL與Struts的結(jié)合(五)

分類:我的著作

9.4.2  用于顯示XML內(nèi)容的<x:out>標(biāo)簽

<x:out>標(biāo)簽從<x:parse>標(biāo)簽解析后保存的變量中取得需要的XML文件內(nèi)容,并顯示在頁面上。該標(biāo)簽是通過XPath技術(shù)(定位XML元素的一種技術(shù))來實現(xiàn)的。要使用<x:out>標(biāo)簽必須將xalan-jjar包保存在“WEB-INF/lib”下。它的屬性和描述如表9.13所示:

9.13 <x:out>標(biāo)簽屬性和說明

屬性

描述

select

XPath表達(dá)式

escape

當(dāng)特殊字符如:“<,>,&,’,””出現(xiàn)在取得的結(jié)果字符串中時,將以轉(zhuǎn)義字符來替換

<x:out>標(biāo)簽需要與<x:parse>標(biāo)簽協(xié)同工作,下面看一個示例。

<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml"/>

<x:parse var="xmlFileValue" doc="${xmlFile}"/>

name:<x:out select="$xmlFileValue/xml-body/name"/><br>

passWord:<x:out select="$xmlFileValue/xml-body/passWord"/><br>

age:<x:out select="$xmlFileValue/xml-body/age"/><br>

讀取XML文件并解析后的變量xmlFileValue將加上“$”作為XPath表達(dá)式的開頭,select中的表達(dá)式將從xml-body根元素下的各個子元素中取得實體內(nèi)容,最后將結(jié)果顯示在頁面上。根據(jù)“SampleXml.xml”文件的內(nèi)容,將顯示。

name:RW

passWord:123456

age:28

9.4.3  用于保存XML內(nèi)容的<x:set>標(biāo)簽

<x:set>標(biāo)簽允許將某個源XML中元素的實體內(nèi)容或?qū)傩?,保存到一個變量中去,它的實現(xiàn)也依靠XPath技術(shù)。它的屬性和描述如表9.14所示:

9.14 <x:set>標(biāo)簽屬性和說明

屬性

描述

select

XPath表達(dá)式

var

保存結(jié)果的變量名

scope

變量的作用范圍(可選)

<x:set>標(biāo)簽的var保存的變量由XPath的結(jié)果決定該變量的類型,下面看一個示例。

<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml"/>

<x:parse var="xmlFileValue" doc="${xmlFile}"/>

<x:set select="$xmlFileValue/xml-body/name" var="thisName"/>

這里將保存XMLname元素內(nèi)容到變量“thisName”中。

9.4.4  用于判斷的<x:if>標(biāo)簽

<x:if>標(biāo)簽允許由XPathboolean()函數(shù)得到的判斷結(jié)果,來判斷是否顯示其標(biāo)簽所包含的內(nèi)容。<x:if>標(biāo)簽的屬性與<x:set>標(biāo)簽相同,但是var的結(jié)果只能是boolean類型。

9.4.5  用于復(fù)雜判斷的<x:choose>、<x:when>、<x:otherwise>標(biāo)簽

這組標(biāo)簽將一起使用,來提供“if elseif”語句的功能。

<x:choose>標(biāo)簽沒有屬性,可以被認(rèn)為是父標(biāo)簽,<x:when>、<x:otherwise>將作為其子標(biāo)簽來使用。

<x:when>標(biāo)簽等價于“if”語句,它包含一個select屬性,該屬性為XPath判斷表達(dá)式。

<x:otherwise>標(biāo)簽沒有屬性,它等價于“else語句。

9.4.6  用于對XML元素循環(huán)的 <x:forEach>標(biāo)簽

<x:forEach>為對XML文件中同一名稱元素的循環(huán)控制標(biāo)簽。它的屬性和描述如表9.15所示:

9.15 <x:set>標(biāo)簽屬性和說明

屬性

描述

select

XPath表達(dá)式,結(jié)果是一個集合,將對該集合進(jìn)行循環(huán)(可選)

begin

開始條件(可選)

end

結(jié)束條件(可選)

step

循環(huán)的步長,默認(rèn)為1(可選)

var

做循環(huán)的對象變量名,表示XPath表達(dá)式結(jié)果集合中的一個對象(可選)

varStatus

顯示循環(huán)狀態(tài)的變量(可選)

下面看一個示例。

<x:forEach select="$xmlFileValue/xml-body/books/book" var="book">

${book}

</x:forEach>

該示例將使用循環(huán)讀取XML中多個同存于books元素下的book子元素。

9.4.7  格式化XML顯示數(shù)據(jù)的<x:transform>標(biāo)簽

<x:transform>標(biāo)簽允許使用XSLT(轉(zhuǎn)換XML格式的語言)為頁面的顯示數(shù)據(jù)做格式化的處理。它的屬性和描述如表9.16所示:

9.16 <x:transform>標(biāo)簽屬性和說明

屬性

描述

doc

XML的內(nèi)容,該屬性的內(nèi)容應(yīng)該為String、java.io.Reader、javax.xml.transform.Source、org.w3c.dom.Document的實例,或者從<x:parse><x:set>兩個標(biāo)簽得到??梢杂?/span>xml屬性來替代,但是不被推薦(可選)

xslt

XSLT的內(nèi)容,該屬性的內(nèi)容應(yīng)該為Stringjava.io.Reader、javax.xml.transform.Source的實例(可選)

docSystemId

定義一個URI,該URI將被使用到XML文件中以接入其他資源文件??梢杂?/span>xml SystemId屬性來替代,但是不被推薦(可選)

xsltSystemId

定義一個URI,該URI將被使用到XSLT文件中以接入其他資源文件(可選)

var

將格式化后的XML文件保存在該屬性所指定的變量中,保存的變量為org.w3c.dom.Document接口類型(可選)

scope

變量的作用范圍(可選)

result

保存轉(zhuǎn)化結(jié)果的變量,保存的變量為javax.xml.transform.Result類型的實例(可選)

下面看一個示例:

<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml" />

<c:set var="xsltdoc">

         <?xml version="1.0"?>

         <xsl:stylesheet xmlns:xsl="http://www./1999/XSL/Transform" version="1.0">

                   <xsl:template match="/">

                            <xsl:apply-templates />

                   </xsl:template>

                   <xsl:template match="xml-body">

                            <html>

                                     <head></head>

                                     <body marginheight="0" marginwidth="0" topmargin="0" leftmargin="0">

                                               <h2>

                                                        UserName

                                                        <xsl:value-of select="name" />

                                               </h2>

                                               <h2>

                                                        PassWord

                                                        <xsl:value-of select="passWord" />

                                               </h2>

                                               <h2>

                                                        age

                                                        <xsl:value-of select="age" />

                                               </h2>

                                     </body>

                            </html>

                   </xsl:template>

         </xsl:stylesheet>

</c:set>

<x:transform xslt="${xsltdoc}" doc="${xmlFile}" />

這個示例XML文件保存的數(shù)據(jù)信息利用<c:import>保存在“xmlFile”中,然后使用<c:set>標(biāo)簽保存一個XSLT的源到“xsltdoc”,最后通過<x:transform>格式化XML文件的數(shù)據(jù)顯示在頁面上。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    91麻豆精品欧美一区| 久久99这里只精品热在线| 国产伦精品一一区二区三区高清版 | 国产91麻豆精品成人区| 国产精品午夜福利在线观看| 亚洲精品偷拍一区二区三区| 精品国产亚洲一区二区三区| 日韩免费午夜福利视频| 中文字幕五月婷婷免费| 亚洲一区二区三区中文久久| 精品国产av一区二区三区不卡蜜| 国产精品福利精品福利| 国产精品国产亚洲看不卡 | 亚洲国产精品久久综合网| 久久女同精品一区二区| 日韩一区二区三区嘿嘿| 国产日韩欧美综合视频| 欧美一区二区口爆吞精| 尤物久久91欧美人禽亚洲| 国产精品一区二区三区黄色片| 久久偷拍视频免费观看| 久热人妻中文字幕一区二区| 欧美日韩中国性生活视频| 男人的天堂的视频东京热| 国产传媒欧美日韩成人精品| 亚洲日本久久国产精品久久| 久久精品a毛片看国产成人| 麻豆剧果冻传媒一二三区| 日韩精品视频香蕉视频| 伊人久久青草地婷婷综合| 日韩中文高清在线专区| 九九热这里只有精品哦| 少妇成人精品一区二区| 精品人妻一区二区三区免费看| 免费特黄欧美亚洲黄片| 国产亚洲精品久久99| 日本成人三级在线播放| 激情中文字幕在线观看| 国产不卡在线免费观看视频| 欧美激情区一区二区三区| 粉嫩内射av一区二区|