JSP - Tutorial JSTL (Standard Tag Library)
In questo capitolo capiremo i diversi tag in JSP. La JSTL (JavaServer Pages Standard Tag Library) è una raccolta di utili tag JSP che racchiude le funzionalità principali comuni a molte applicazioni JSP.
JSTL supporta attività strutturali comuni come iterazioni e condizionali, tag per la manipolazione di documenti XML, tag di internazionalizzazione e tag SQL. Fornisce inoltre un framework per l'integrazione dei tag personalizzati esistenti con i tag JSTL.
Installa la libreria JSTL
Per iniziare a lavorare con le taglie JSP è necessario prima installare la libreria JSTL. Se stai utilizzando il contenitore Apache Tomcat, segui questi due passaggi:
Step 1- Scarica la distribuzione binaria da Apache Standard Taglib e decomprimi il file compresso.
Step 2 - Utilizzare lo Standard Taglib dal suo Jakarta Taglibs distribution, copia semplicemente i file JAR nella directory 'lib' della distribuzione nella tua applicazione webapps\ROOT\WEB-INF\lib directory.
Per utilizzare una qualsiasi delle librerie, è necessario includere una direttiva <taglib> all'inizio di ogni JSP che utilizza la libreria.
Classificazione dei tag JSTL
I tag JSTL possono essere classificati, in base alle loro funzioni, nei seguenti gruppi di librerie di tag JSTL che possono essere utilizzati durante la creazione di una pagina JSP:
Core Tags
Formatting tags
SQL tags
XML tags
JSTL Functions
Tag principali
Il gruppo principale di tag sono i tag JSTL più comunemente usati. Di seguito è riportata la sintassi per includere la libreria JSTL Core nel tuo JSP:
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
La tabella seguente elenca i tag JSTL principali:
| S.No. | Tag e descrizione |
|---|---|
| 1 | Come <% = ...>, ma per le espressioni. |
| 2 | Imposta il risultato della valutazione di un'espressione in un file 'scope' |
| 3 | Rimuove un file scoped variable (da un ambito particolare, se specificato). |
| 4 | Cattura qualsiasi Throwable che si verifica nel suo corpo e facoltativamente lo espone. |
| 5 | Tag condizionale semplice che ne valuta il corpo se la condizione fornita è vera. |
| 6 | Tag condizionale semplice che stabilisce un contesto per operazioni condizionali che si escludono a vicenda, contrassegnato da <when> e <otherwise>. |
| 7 | Sottotag di <choose> che include il suo corpo se la sua condizione viene valutata a 'true'. |
| 8 | Sottotag di <choose> che segue il <when> tag e viene eseguito solo se vengono valutate tutte le condizioni precedenti 'false'. |
| 9 | Recupera un URL assoluto o relativo ed espone i suoi contenuti alla pagina, una stringa in 'var'o un Reader in 'varReader'. |
| 10 | Il tag di iterazione di base, che accetta molti diversi tipi di raccolta e supporta sottoinsiemi e altre funzionalità. |
| 11 | Itera sui token, separati dai delimitatori forniti. |
| 12 | Aggiunge un parametro a un contenitore 'import' URL del tag. |
| 13 | Reindirizza a un nuovo URL. |
| 14 | Crea un URL con parametri di query opzionali |
Formattazione dei tag
I tag di formattazione JSTL vengono utilizzati per formattare e visualizzare il testo, la data, l'ora e i numeri per i siti Web internazionalizzati. Di seguito è riportata la sintassi per includere la libreria di formattazione nel tuo JSP:
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
La tabella seguente elenca i tag JSTL di formattazione:
| S.No. | Tag e descrizione |
|---|---|
| 1 | Per rendere il valore numerico con una precisione o un formato specifici. |
| 2 | Analizza la rappresentazione di stringa di un numero, valuta o percentuale. |
| 3 | Formatta una data e / o un'ora utilizzando gli stili e il modello forniti. |
| 4 | Analizza la rappresentazione di stringa di una data e / o di un'ora |
| 5 | Carica un bundle di risorse da utilizzare per il corpo del tag. |
| 6 | Memorizza la locale specificata nella variabile di configurazione della locale. |
| 7 | Carica un bundle di risorse e lo memorizza nella variabile con ambito denominato o nella variabile di configurazione del bundle. |
| 8 | Specifica il fuso orario per qualsiasi azione di formattazione o analisi dell'ora annidata nel suo corpo. |
| 9 | Memorizza il fuso orario specificato nella variabile di configurazione del fuso orario |
| 10 | Visualizza un messaggio internazionalizzato. |
| 11 | Imposta la codifica dei caratteri della richiesta |
Tag SQL
La libreria di tag SQL JSTL fornisce tag per l'interazione con database relazionali (RDBMS) come Oracle, mySQL, o Microsoft SQL Server.
Di seguito è riportata la sintassi per includere la libreria SQL JSTL nel tuo JSP:
<%@ taglib prefix = "sql" uri = "http://java.sun.com/jsp/jstl/sql" %>
La tabella seguente elenca i tag SQL JSTL:
| S.No. | Tag e descrizione |
|---|---|
| 1 | Crea un semplice DataSource adatto solo per la prototipazione |
| 2 | Esegue la query SQL definita nel suo corpo o tramite l'attributo sql. |
| 3 | Esegue l'aggiornamento SQL definito nel suo corpo o tramite l'attributo sql. |
| 4 | Imposta un parametro in un'istruzione SQL sul valore specificato. |
| 5 | Imposta un parametro in un'istruzione SQL sul valore java.util.Date specificato. |
| 6 | Fornisce elementi di azione del database nidificati con una connessione condivisa, configurata per eseguire tutte le istruzioni come un'unica transazione. |
Tag XML
I tag XML JSTL forniscono un modo incentrato su JSP di creare e manipolare i documenti XML. La seguente è la sintassi per includere la libreria XML JSTL nel tuo JSP.
La libreria di tag XML JSTL dispone di tag personalizzati per l'interazione con i dati XML. Ciò include l'analisi dell'XML, la trasformazione dei dati XML e il controllo del flusso basato sulle espressioni XPath.
<%@ taglib prefix = "x"
uri = "http://java.sun.com/jsp/jstl/xml" %>
Prima di procedere con gli esempi, 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
Di seguito è riportato l'elenco dei tag JSTL XML:
| S.No. | Tag e descrizione |
|---|---|
| 1 | Come <% = ...>, ma per le espressioni XPath. |
| 2 | Utilizzato per analizzare i dati XML specificati tramite un attributo o nel corpo del tag. |
| 3 | Imposta una variabile sul valore di un'espressione XPath. |
| 4 | Valuta un'espressione XPath di prova e, se è vera, ne elabora il corpo. Se la condizione del test è falsa, il corpo viene ignorato. |
| 5 | Per eseguire il ciclo sui nodi in un documento XML. |
| 6 | Tag condizionale semplice che stabilisce un contesto per operazioni condizionali che si escludono a vicenda, contrassegnato da <when> e <otherwise> tag. |
| 7 | Sottotag di <choose> che include il suo corpo se la sua espressione viene valutata come "vero". |
| 8 | Sottotag di <choose> che segue il <when> tag e viene eseguito solo se tutte le condizioni precedenti restituiscono "false". |
| 9 | Applica una trasformazione XSL a un documento XML |
| 10 | Usato insieme a transform tag per impostare un parametro nel foglio di stile XSLT |
Funzioni JSTL
JSTL include una serie di funzioni standard, la maggior parte delle quali sono comuni funzioni di manipolazione delle stringhe. Di seguito è riportata la sintassi per includere la libreria di funzioni JSTL nel tuo JSP:
<%@ taglib prefix = "fn"
uri = "http://java.sun.com/jsp/jstl/functions" %>
La tabella seguente elenca le varie funzioni JSTL:
| S.No. | Descrizione della funzione |
|---|---|
| 1 | fn: contiene ()
Verifica se una stringa di input contiene la sottostringa specificata. |
| 2 | fn: containsIgnoreCase ()
Verifica se una stringa di input contiene la sottostringa specificata senza distinzione tra maiuscole e minuscole. |
| 3 | fn: finisce con ()
Verifica se una stringa di input termina con il suffisso specificato. |
| 4 | fn: escapeXml ()
Esegue l'escape dei caratteri che possono essere interpretati come markup XML. |
| 5 | fn: indexOf ()
Restituisce l'indice all'interno di una stringa della prima occorrenza di una sottostringa specificata. |
| 6 | fn: join ()
Unisce tutti gli elementi di un array in una stringa. |
| 7 | fn: lunghezza ()
Restituisce il numero di elementi in una raccolta o il numero di caratteri in una stringa. |
| 8 | fn: sostituire ()
Restituisce una stringa risultante dalla sostituzione in una stringa di input di tutte le occorrenze con una determinata stringa. |
| 9 | fn: split ()
Divide una stringa in un array di sottostringhe. |
| 10 | fn: inizia con ()
Verifica se una stringa di input inizia con il prefisso specificato. |
| 11 | fn: sottostringa ()
Restituisce un sottoinsieme di una stringa. |
| 12 | fn: substringAfter ()
Restituisce un sottoinsieme di una stringa che segue una sottostringa specifica. |
| 13 | fn: substringBefore ()
Restituisce un sottoinsieme di una stringa prima di una sottostringa specifica. |
| 14 | fn: toLowerCase ()
Converte tutti i caratteri di una stringa in minuscolo. |
| 15 | fn: toUpperCase ()
Converte tutti i caratteri di una stringa in maiuscolo. |
| 16 | fn: trim ()
Rimuove gli spazi bianchi da entrambe le estremità di una stringa. |