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. |