Java  »  Articoli  »  JSP e servlet 

Trasformare XML in JSP

di: Pasquale Congiustì     07 Luglio 2008

Nello sviluppo di applicazioni Web, una parte molto importante viene data all'interfaccia, che in ambito Java abbiamo visto essere spesso JSP. Le tecnologie che usiamo oggi sono ormai abbastanza rodate e mature e i nuovi linguaggi di scripting lato client aiutano nella creazione di interfacce più dinamiche e coinvolgenti, ma il problema della rappresentazione di dati su diversi dispositivi è sempre una questione aperta.

Generalmente la rappresentazione dei dati è un processo che coinvolge le entità, cioè il model (in un ideale pattern MVC), e quindi l'utilizzo delle informazioni direttamente da quest'ultimo. Spesso però ci ritroviamo in un'attività che è ambigua in quanto il model è rappresentato da una risorsa XML. Tale situazione avviene nella creazione di un mash up, applicazioni B2B, o dove in genere lo scambio informativo avviene tramite l'utilizzo di documenti XML. Come ci dobbiamo comportare in situazioni del genere? Come poter rappresentare dei dati XML in una JSP?

La domanda ha due risposte (come sappiamo, l'informatica propone tante soluzioni, ognuna meglio adattabile in base al contesto). La prima semplice risposta che ci viene in mente è quella di introdurre un livello di logica che si occupi di convertire le informazioni XML in oggetti Java e poi utilizzare i metodi accessori su questi ultimi. Tale soluzione ha senso quando tali oggetti sono manipolati e fanno parte di logiche di business più complesse.

Ma ha senso creare un contenitore di informazioni al solo scopo di rappresentarle? Ha senso utilizzare risorse computazionali nelle operazioni di lettura del documento, memoria fisica nella gestione degli oggetti? La risposta è no, e il presente articolo ha lo scopo di mostrare come sia possibile rappresentare informazioni XML direttamente nelle pagine JSP attraverso l'uso delle trasformazioni XSL (eXtended Stylesheet Language).

Su XML e XSL non approfondiremo, lasciando il compito alle guide e agli articoli che trovate nella sezione apposita di HTML.it. Ci limitiamo a ricordare il compito di XSL, cioè creare delle regole tali per convertire un documento XML in un altro formato (HTML, PDF, altro XML, WML, ecc). Come si può facilmente immaginare, attraverso la creazione di diversi fogli di stile XSL è possibile avere gli stessi dati rappresentati su diversi media, ad esempio HTML per un browser Web, WML per un telefonino, VoiceXML per un dispositivo per non udenti.

Primo esempio, un formato XML generico

Partiamo subito con un esempio per mostrarvi quanto sia semplice e immediato effettuare una trasformazione XSL su un documento. Ogni linguaggio di programmazione ha i suoi modi per farlo, addirittura lo stesso XML può definire al suo interno un foglio di stile da applicare ed essere convertito in fase di lettura direttamente dal browser.

Noi, con Java, utilizzeremo un semplice custom tag a tale scopo, che ci semplifica ancor più la vita, nascondendoci l'implementazione e la modalità con cui la trasformazione viene svolta. Un progetto ottimale è la libreria Jakarta taglibs che potete scaricare dal sito ufficiale.

Una volta scaricata la libreria, la vostra applicazione potrà utilizzare i diversi tag che la compongono, in particolare il tag di trasformazione, i cui input sono un documento XML contenente i dati e un XSL contenente le regole di trasformazione. Per poter funzionare ricordatevi di includere sotto il classpath o la cartella lib dell'applicazione le librerie utilizzate (taglib-xsl, xalan1, xerces1).

Nel primo esempio vediamo la formattazione di un documento XML generico, ad esempio una lista di libri, rappresentato come segue:

Listato 1. Esempio della formattazione di un documento XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<books>
  <book isbn="123">
    <title>Mastering EJB 3.0</title>
    <quantity>10</quantity>
    <price>Eu 35.99</price>
  </book>
  <book isbn="456">
    <title>AJAX for Dummies</title>
    <quantity>2</quantity>
    <price>Eu 8.99</price>
  </book>
  <book isbn="789">
    <title>How to Squake!</title>
    <quantity>25</quantity>
    <price>Eu 29.01</price>
  </book>
</books>

Guide Java

Guida Apache Struts

Il primo e più utilizzato tra i framework MVC del mondo Java,...

Guida Java Spring

Scoprire il lightweight container più famoso del mondo Java....

Guida Java 6

Prendendo le mosse dalla guida Java, già presente su HTML.it,...

Altre guide

Newsletter @Programmazione

Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti