Skip to content

Latest commit

 

History

History
executable file
·
102 lines (77 loc) · 5.48 KB

059_JSP_2.md

File metadata and controls

executable file
·
102 lines (77 loc) · 5.48 KB

Tag Libraries in JSP

Le Tag Libraries (librerie di tag) in JSP offrono una serie di tag predefiniti per facilitare lo sviluppo di applicazioni web senza scrivere codice Java direttamente nelle pagine JSP. Tra le più importanti librerie standard troviamo la JSTL (JavaServer Pages Standard Tag Library), che include diverse sottocategorie, ognuna con funzionalità specifiche. Le librerie di tag sono utili per attività comuni come iterazioni, gestione delle variabili, formattazione e accesso ai dati.

1. JSTL (JavaServer Pages Standard Tag Library)

La JSTL fornisce un insieme di tag standard che possono essere utilizzati in JSP per varie attività, suddivisi in sotto-librerie.

a) Core

  • Tag URI: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  • Funzionalità: Contiene tag per il controllo di flusso (come if e forEach), gestione delle variabili, redirezione e inclusione di contenuti.
  • Tag Principali:
    • <c:if>: Esegue il contenuto condizionatamente.
    • <c:forEach>: Esegue iterazioni su collezioni o intervalli.
    • <c:set>: Imposta il valore di una variabile.
    • <c:out>: Visualizza il valore di una variabile.

b) XML

  • Tag URI: <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
  • Funzionalità: Fornisce tag per elaborare dati XML, utili per leggere e manipolare documenti XML.
  • Tag Principali:
    • <x:parse>: Converte un documento XML in un oggetto elaborabile.
    • <x:forEach>: Itera sugli elementi XML selezionati.
    • <x:out>: Estrae e visualizza contenuti XML.

c) Format (fmt)

  • Tag URI: <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  • Funzionalità: Supporta la localizzazione, la formattazione di numeri, date e testi, rendendo semplice la gestione di contenuti multilingue e il formato numerico.
  • Tag Principali:
    • <fmt:formatDate>: Formatta una data.
    • <fmt:formatNumber>: Formatta un numero.
    • <fmt:message>: Recupera messaggi localizzati.
    • <fmt:setLocale>: Imposta la localizzazione corrente.

d) SQL

  • Tag URI: <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
  • Funzionalità: Gestisce operazioni di database direttamente nella pagina JSP (non raccomandato per applicazioni reali, ma utile per prototipi).
  • Tag Principali:
    • <sql:query>: Esegue query SQL e restituisce i risultati.
    • <sql:update>: Esegue comandi di aggiornamento nel database.
    • <sql:param>: Passa parametri alla query SQL.

e) Functions (fn)

  • Tag URI: <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
  • Funzionalità: Contiene funzioni di utilità per operazioni su stringhe, come la ricerca, il confronto, e la manipolazione delle stringhe.
  • Funzioni Principali:
    • fn:contains: Verifica se una stringa contiene una sottostringa.
    • fn:length: Restituisce la lunghezza di una stringa o collezione.
    • fn:substring: Estrae una sottostringa da una stringa data.

2. Librerie di Tag Personalizzate

  • Descrizione: In JSP è possibile creare librerie di tag personalizzate per esigenze specifiche di un'applicazione. Questi tag vengono creati implementando la specifica JSP e includendo un file di descrizione chiamato TLD (Tag Library Descriptor), che specifica i dettagli del tag (attributi, classe associata, ecc.).
  • Utilizzo: Permettono di incapsulare funzionalità complesse, semplificando la pagina JSP e migliorandone la riusabilità.
  • Esempio:
    • Creazione di un tag <welcomeUser> per visualizzare un saluto personalizzato.
    • File welcomeUser.tld per definire il tag e la classe di supporto associata.

3. EL (Expression Language)

  • Descrizione: EL (Expression Language) è un linguaggio che permette di accedere a variabili e proprietà, eseguire operazioni e valutare espressioni in modo semplice. EL è integrato nelle JSP e facilita l’accesso ai dati senza dover scrivere codice Java.
  • Funzionalità:
    • Accesso agli Oggetti Impliciti: EL permette di accedere direttamente a oggetti comuni come request, session, application, e pageContext.
    • Operazioni: Supporta operazioni come confronti (==, !=), espressioni logiche (&&, ||), e operazioni aritmetiche (+, -, *, /).
    • Sintassi: Utilizza ${} per denotare un'espressione.
  • Esempi di EL:
    • ${param.username}: Recupera il valore di un parametro di richiesta username.
    • ${sessionScope.user.name}: Accede alla proprietà name di un oggetto user nella sessione.

Esempio Completo con Tag Libraries e EL

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<html>
<head>
    <title>Benvenuto</title>
</head>
<body>
    <c:set var="user" value="${param.username}" scope="session" />
    
    <h2>Benvenuto, ${user}!</h2>

    <fmt:formatDate value="${now}" pattern="dd/MM/yyyy" var="today" />
    <p>Data odierna: ${today}</p>

    <c:if test="${user == 'Mario'}">
        <p>Mario, sei il nostro utente preferito!</p>
    </c:if>
</body>
</html>

Conclusioni

Le Tag Libraries e EL in JSP offrono strumenti per gestire le funzionalità del server in modo dichiarativo e senza codice Java, favorendo la separazione tra la logica di presentazione e quella di business. Le librerie standard (JSTL) coprono la maggior parte delle necessità comuni, e le librerie personalizzate permettono di estendere ulteriormente le funzionalità in modo modulare.