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 | <c: out>
Come <% = ...>, ma per le espressioni. |
2 | <c: set>
Imposta il risultato della valutazione di un'espressione in un file 'scope' |
3 | <c: remove>
Rimuove un file scoped variable (da un ambito particolare, se specificato). |
4 | <c: catch>
Cattura qualsiasi Throwable che si verifica nel suo corpo e facoltativamente lo espone. |
5 | <c: if>
Tag condizionale semplice che ne valuta il corpo se la condizione fornita è vera. |
6 | <c: scegli>
Tag condizionale semplice che stabilisce un contesto per operazioni condizionali che si escludono a vicenda, contrassegnato da <when> e <otherwise>. |
7 | <c: quando>
Sottotag di <choose> che include il suo corpo se la sua condizione viene valutata a 'true'. |
8 | <c: altrimenti>
Sottotag di <choose> che segue il <when> tag e viene eseguito solo se vengono valutate tutte le condizioni precedenti 'false'. |
9 | <c: import>
Recupera un URL assoluto o relativo ed espone i suoi contenuti alla pagina, una stringa in 'var'o un Reader in 'varReader'. |
10 | <c: forEach>
Il tag di iterazione di base, che accetta molti diversi tipi di raccolta e supporta sottoinsiemi e altre funzionalità. |
11 | <c: forTokens>
Itera sui token, separati dai delimitatori forniti. |
12 | <c: param>
Aggiunge un parametro a un contenitore 'import' URL del tag. |
13 | <c: redirect>
Reindirizza a un nuovo URL. |
14 | <c: url>
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 | <fmt: formatNumber>
Per rendere il valore numerico con una precisione o un formato specifici. |
2 | <fmt: parseNumber>
Analizza la rappresentazione di stringa di un numero, valuta o percentuale. |
3 | <fmt: formatDate>
Formatta una data e / o un'ora utilizzando gli stili e il modello forniti. |
4 | <fmt: parseDate>
Analizza la rappresentazione di stringa di una data e / o di un'ora |
5 | <fmt: bundle>
Carica un bundle di risorse da utilizzare per il corpo del tag. |
6 | <fmt: setLocale>
Memorizza la locale specificata nella variabile di configurazione della locale. |
7 | <fmt: setBundle>
Carica un bundle di risorse e lo memorizza nella variabile con ambito denominato o nella variabile di configurazione del bundle. |
8 | <fmt: timeZone>
Specifica il fuso orario per qualsiasi azione di formattazione o analisi dell'ora annidata nel suo corpo. |
9 | <fmt: setTimeZone>
Memorizza il fuso orario specificato nella variabile di configurazione del fuso orario |
10 | <fmt: messaggio>
Visualizza un messaggio internazionalizzato. |
11 | <fmt: requestEncoding>
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 | <sql: setDataSource>
Crea un semplice DataSource adatto solo per la prototipazione |
2 | <sql: query>
Esegue la query SQL definita nel suo corpo o tramite l'attributo sql. |
3 | <sql: update>
Esegue l'aggiornamento SQL definito nel suo corpo o tramite l'attributo sql. |
4 | <sql: param>
Imposta un parametro in un'istruzione SQL sul valore specificato. |
5 | <sql: dateParam>
Imposta un parametro in un'istruzione SQL sul valore java.util.Date specificato. |
6 | <sql: transazione>
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 | <x: out>
Come <% = ...>, ma per le espressioni XPath. |
2 | <x: parse>
Utilizzato per analizzare i dati XML specificati tramite un attributo o nel corpo del tag. |
3 | <x: set>
Imposta una variabile sul valore di un'espressione XPath. |
4 | <x: if>
Valuta un'espressione XPath di prova e, se è vera, ne elabora il corpo. Se la condizione del test è falsa, il corpo viene ignorato. |
5 | <x: forEach>
Per eseguire il ciclo sui nodi in un documento XML. |
6 | <x: choose>
Tag condizionale semplice che stabilisce un contesto per operazioni condizionali che si escludono a vicenda, contrassegnato da <when> e <otherwise> tag. |
7 | <x: quando>
Sottotag di <choose> che include il suo corpo se la sua espressione viene valutata come "vero". |
8 | <x: altrimenti>
Sottotag di <choose> che segue il <when> tag e viene eseguito solo se tutte le condizioni precedenti restituiscono "false". |
9 | <x: transform>
Applica una trasformazione XSL a un documento XML |
10 | <x: param>
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. |