18/06/2003 Tecnologie di Sviluppo per il Web Java Server Pages (JSP): Concetti Avanzati G. Mecca – [email protected] – Università della Basilicata JSP >> Sommario Concetti Avanzati m Librerie di Tag (cenni) ðLa Libreria Standard di Tag JSP (“JSTL - JSP Standard Tag Library”) G. Mecca - Tecnologie di Sviluppo per il Web 2 1 18/06/2003 JSP >> Concetti Avanzati >> Librerie di Tag Librerie di Tag m Filosofia del Modello 2 ðseparazione delle funzioni ðil codice HTML deve stare nelle pagine jsp ðil codice Java deve stare nel controllo m Obiettivo ðrimuovere le istruzioni Java dalle pagine Jsp ðsostituendoli con particolari tag la cui semantica è quella di eseguire operazioni opportune G. Mecca - Tecnologie di Sviluppo per il Web 3 JSP >> Concetti Avanzati >> Librerie di Tag Librerie di Tag m Esempi di operazioni frequenti nelle jsp ðgestione dei bean (creazione, istanziazione e accesso alle proprietà) ðinclusione ðvisualizzazione di dati complessi (es: collezioni) ðstrutture condizionali ðintestazioni HTTP della risposta G. Mecca - Tecnologie di Sviluppo per il Web 4 2 18/06/2003 JSP >> Concetti Avanzati >> Librerie di Tag Librerie di Tag m Tag di azione predefiniti ðrisolvono il problema dell’inclusione ðrisolvono (in gran parte) il problema della gestione dei bean m Per tutto il resto ðè possibile definire i propri tag personalizzati ðfunzionalità supportata dalla versione 1.1 ðsignificativamente rivisitata nella versione 1.2 G. Mecca - Tecnologie di Sviluppo per il Web 5 JSP >> Concetti Avanzati >> Librerie di Tag Librerie di Tag m Libreria di tag personalizzati ðpackage di classi, una classe per ciascun tag ðdescrittore della libreria (“tag library descriptor”), file .tld ðassocia il nome del tag alla corrispondente classe m Utilizzo ðdirettiva “taglib” nelle pagine Jsp G. Mecca - Tecnologie di Sviluppo per il Web 6 3 18/06/2003 JSP >> Concetti Avanzati >> Librerie di Tag Costruzione della Libreria m API javax.servlet.jsp.tagext ðclasse astratta TagSupport ðmetodo int doStartTag(): operazioni corrispondenti al tag di apertura ðmetodo int doEndTag(): operazioni da eseguire al tag di chiusura ðvariabile implicita pageContext ðvarie modalità per il trattamento del corpo G. Mecca - Tecnologie di Sviluppo per il Web 7 JSP >> Concetti Avanzati >> Librerie di Tag Costruzione della Libreria m Trattamento del corpo ðvarie costanti ðEVAL_BODY_INCLUDE ðSKIP_BODY ðEVAL_PAGE ðSKIP_PAGE ðEVAL_ BODY_AGAIN G. Mecca - Tecnologie di Sviluppo per il Web 8 4 18/06/2003 JSP >> Concetti Avanzati >> Librerie di Tag Costruzione della Libreria m Descrittore della libreria ðfile xml ðDTD fissato dalla specifica ðestensione convenzionale .tld ðdichiara per ciascun tag il nome, il modello di contenuto, la classe java che lo implementa, eventuali parametri 9 G. Mecca - Tecnologie di Sviluppo per il Web JSP >> Concetti Avanzati >> Librerie di Tag Costruzione della Libreria m Nella pagina jsp ðdirettiva taglib ð<%@ taglib uri=“uriDescrittore” prefix=“prefisso” %> ðuriDescrittore: riferiemento al tag .tld ðprefisso: prefisso di namespace utilizzato nella pagina per distinguere i tag della libreria ðforma dei tag: <prefisso:nome> la libreria di tag di pinco >> G. Mecca - Tecnologie di Sviluppo per il Web 10 5 18/06/2003 JSP >> Concetti Avanzati >> Librerie di Tag Costruzione della Libreria m Nota ðsi tratta di una funzionalità complessa ðmolte funzionalità avanzate ðsemantica non banale m Idealmente ði tag vengono sviluppati una volta per tutte ðgli utenti utilizzano i tag standard corrispondenti alle attività più diffuse G. Mecca - Tecnologie di Sviluppo per il Web 11 JSP >> Concetti Avanzati >> Librerie di Tag JSTL: La Libreria Standard di Tag JSP m Definita nel Java Community Process ðimplementazione di riferimento nel progetto “taglibs” di jakarta.apache.org ðnumerosissimi tag ðes: gestione della sessione, gestione dell’applicazione, if, cicli, bean, date, espressioni regolari ecc. ðprossima alla versione 1.0 G. Mecca - Tecnologie di Sviluppo per il Web 12 6 18/06/2003 JSP >> Sommario Concetti Avanzati m Librerie di Tag (cenni) ðLa Libreria Standard di Tag JSP (“JSTL - JSP Standard Tag Library”) G. Mecca - Tecnologie di Sviluppo per il Web 13 7