JSP - Dati XML
Quando si inviano i dati XML tramite HTTP, ha senso utilizzare JSP per gestire i documenti XML in entrata e in uscita; ad esempio, documenti RSS. Poiché un documento XML è semplicemente un mucchio di testo, crearne uno tramite un JSP è molto più semplice che creare un documento HTML.
Invio di XML da un JSP
È possibile inviare il contenuto XML utilizzando JSP nello stesso modo in cui si invia HTML. L'unica differenza è che devi impostare il tipo di contenuto della tua pagina su text / xml. Per impostare il tipo di contenuto, utilizza<%@page%> tag, in questo modo -
<%@ page contentType = "text/xml" %>
L'esempio seguente mostrerà come inviare contenuto XML al browser:
<%@ page contentType = "text/xml" %>
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price>
</book>
</books>
Accedere all'XML di cui sopra utilizzando diversi browser per vedere la presentazione dell'albero dei documenti dell'XML di cui sopra.
Elaborazione XML in JSP
Prima di procedere con l'elaborazione XML utilizzando JSP, sarà necessario copiare le seguenti due librerie relative a XML e XPath nel file <Tomcat Installation Directory>\lib -
XercesImpl.jar - Scaricalo da https://www.apache.org/dist/xerces/j/
xalan.jar - Scaricalo da https://xml.apache.org/xalan-j/index.html
Mettiamo il seguente contenuto nel file books.xml -
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price>
</book>
<book>
<name>Great Mistry</name>
<author>NUHA</author>
<price>2000</price>
</book>
</books>
Prova quanto segue main.jsp, mantenendo nella stessa directory -
<%@ taglib prefix = "c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri="http://java.sun.com/jsp/jstl/xml" %>
<html>
<head>
<title>JSTL x:parse Tags</title>
</head>
<body>
<h3>Books Info:</h3>
<c:import var = "bookInfo" url="http://localhost:8080/books.xml"/>
<x:parse xml = "${bookInfo}" var = "output"/>
<b>The title of the first book is</b>:
<x:out select = "$output/books/book[1]/name" />
<br>
<b>The price of the second book</b>:
<x:out select = "$output/books/book[2]/price" />
</body>
</html>
Accedi al JSP sopra usando http://localhost:8080/main.jsp, verrà visualizzato il seguente risultato:
Books Info:
The title of the first book is:Padam History
The price of the second book: 2000
Formattazione XML con JSP
Considera il seguente foglio di stile XSLT style.xsl -
<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
version = "1.0">
<xsl:output method = "html" indent = "yes"/>
<xsl:template match = "/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match = "books">
<table border = "1" width = "100%">
<xsl:for-each select = "book">
<tr>
<td>
<i><xsl:value-of select = "name"/></i>
</td>
<td>
<xsl:value-of select = "author"/>
</td>
<td>
<xsl:value-of select = "price"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
Ora considera il seguente file JSP:
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "http://java.sun.com/jsp/jstl/xml" %>
<html>
<head>
<title>JSTL x:transform Tags</title>
</head>
<body>
<h3>Books Info:</h3>
<c:set var = "xmltext">
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price>
</book>
<book>
<name>Great Mistry</name>
<author>NUHA</author>
<price>2000</price>
</book>
</books>
</c:set>
<c:import url = "http://localhost:8080/style.xsl" var = "xslt"/>
<x:transform xml = "${xmltext}" xslt = "${xslt}"/>
</body>
</html>
Verrà visualizzato il seguente risultato:
Books Info:
Padam History
ZARA
100
Great Mistry
NUHA
2000
Per saperne di più sull'elaborazione XML utilizzando JSTL, puoi controllare la libreria di tag standard JSP .