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 -

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.