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-j的jar包保存在“WEB-INF/lib”下。它的屬性和描述如表9.13所示: 表9.13 <x:out>標(biāo)簽屬性和說明
<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)簽屬性和說明
<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"/> 這里將保存XML的name元素內(nèi)容到變量“thisName”中。 9.4.4 用于判斷的<x:if>標(biāo)簽
<x:if>標(biāo)簽允許由XPath的boolean()函數(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)簽屬性和說明
下面看一個示例。 <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)簽屬性和說明
下面看一個示例: <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}" /> 這個 |
|