Corso JSF Java Server Faces Mauro Sanfilippo 02/09/2010.

Slides:



Advertisements
Presentazioni simili
XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
Advertisements

Introduzione ad XML Mario Arrigoni Neri.
Elaborazione di Franco Grivet Chin
INTRODUZIONE Il framework.NET. Un po di storia Sin dalla prima versione del sistema operativo Windows (1990 circa), nacque la necessità di far comunicare.
Costruttori e Distruttori
Applet Java.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
PHP.
Web Services.
Java Enterprise Edition (JEE)
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Relatore:
Università degli Studi di Modena e Reggio Emilia
Usare Apache Axis.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Modulo Object Oriented Programming (Linguaggio Java)
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
REST Il paradigma REST è basato su un protocollo di comunicazione stateless, client-server, chacheable e scalabile, tipicamente HTTP (ma non necessariamente,
LABIS-SD Antonio Cuomo393/121 Clelio Quattrocchi393/127 Emanuele Zuzolo393/136 Fabio Melillo393/141 Stefano Mastrocinque393/135 Valerio Vincenzo Guarino393/155.
3° Workshop "Accessibilità: primi passi per un mondo fruibile da tutti" Alessandro Olivi Modellazione di pagine WEB e accessibilità
Analisi dettagliata e design B. Pernici M.G. Fugini AA
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Un framework per il pattern MVC
Introduzione a AJAX - Asynchronous Javascript And Xml
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Daniel Stoilov Tesi di Laurea
Elaborazione di Franco Grivet Chin
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Struttura di un progetto eclipse
Introduzione ad ASP.net
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
Argomenti della lezione
XSLT Trasformazioni XSL Ing. Luca Sabatucci. XSLT Uno dei vantaggi principali nell'utilizzo dell'Extensible Markup Language è la facilità con cui si possono.
Ing. Enrico Lecchini BetaTre S.r.l.
Chinosi Michele – matr.: La seconda release di Virtuose basata su database XML La seconda release di Virtuose basata su.
Java Contardi Carlo A.S. 2008/09.
Chronos Jpdl Designer versione 1.0
BIRT Business Intelligence Reporting Tools
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Introduzione alle ASP: primi passi negli script. Frosini Andrea Università degli studi di Siena Dipartimento di Scienze Matematiche.
Fondamenti di JSP: Introduzione
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Data Access Layer.
Common Gateway Interface. Dynamic HTML le risposte inviate al client sono (parzialmente o totalmente) create on-the-fly (al volo) dopo aver ricevuto il.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Servlet e Java Server Pages
Java Enterprise Edition
Java Enterprise Edition
Lezione 8.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
JavaScript Generalità Cos'è JavaScript?
N4N Platform Architecture PA Inside outlook.
Laboratorio di Servizi Web - servlet - Ardissono 1 Java Servlet API package javax.servlet: include classi e interfacce di gestione di servlet indipendenti.
Programmazione Web Presentazione del corso /2015.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Analisi dettagliata e design
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Google Visualization API
Eprogram informatica V anno.
Javascript. HTML per definire il contenuto delle pagine web CSS per specificare il layout delle pagine web JavaScript per definire il comportamento delle.
XVRC2 Emanuele Ruffaldi Giugno Tre esperimenti con S3D ► Estensioni del Linguaggio ► Pre-Compilatore ► Esecuzione dentro il Java L C J.
Programmazione orientata agli Oggetti Introduzione a Java.
Android Intent, AlertDialog, SharedPreferences. Intents.
Transcript della presentazione:

Corso JSF Java Server Faces Mauro Sanfilippo 02/09/2010

Contenuto del corso Introduzione alle JSF Esercitazione (guidata dal docente) Questionario Esercizio (individuale)

JSF Framework per la creazione di web app Java Evoluzione naturale delle JSP Oggi alla versione 2.0 (JSR 314) incluso e supportato dai principali appserver e IDE Basato su standard Supportato da Sun, IBM, Oracle

Servlet e JSP

Servlet e JSP Problemi: Gestione "manuale" della request Nessun aiuto nella navigazione e nella validazione Poco OO: si lavora con le stringhe Vantaggi: Controllo più fine

Da JSP a JSF Idea: la pagina è un insieme di oggetti Java, che chiamiamo componenti i componenti sono definiti in un file xml tutte le chiamate sono intercettate da una sola servlet (Faces Servlet), che crea la struttura dati Java che rappresenta l'albero di componenti (View) i componenti sono contenitori di dati agganciati a classi create dallo sviluppatore alla fine della request la view viene renderizzata in HTML

Le pagine JSF Una pagina JSF è un file XML (solitamente suffisso XHTML) contenente codice HTML e tag JSF, che definisce un albero di componenti

Managed Bean Ogni pagina ha a disposizione oggetti Java creati dall'utente e gestiti (managed) dal framework Tramite l'Expression Language i componenti JSF vengono "legati" ai metodi del managed bean   metodi Getter e Setter metodi Action Dipendono dal componente metodi Listener Diversa firma metodi Validator

Fasi Ogni Faces Request genera l'esecuzione di una procedura divisa in 6 fasi: Restore View: viene ricreato l'albero dei componenti Apply Req Values: viene letta la request e impostati i valori passati nei componenti Process Validations: i valori impostati nei componenti vengono controllati (convertiti da stringhe (parametri request!) a oggetti Java e validati) Update Model Values: i valori validi vengono passati ai setter del managed bean (model) Invoke Application: vengono chiamate le azioni dei managed bean e/o viene definita la prossima pagina da renderizzare Render Response: viene generato la nuova view e viene renderizzata in HTML

Risorse: http://wiki.smeup.com  ricerca: "Corso JSF" Learning by examples Creiamo in 9 step un'applicazione via via sempre più complicata per imparare la basi delle JSF Applicazione CRUD Utilizzeremo le JSF 2.0 Risorse: http://wiki.smeup.com  ricerca: "Corso JSF"

Nuovo progetto Netbeans: Nuovo Progetto  Java Web  …  selezionare il framework JSF Eclipse: Dynamic Web Project con Target Runtime Glassfish v3 Java EE 6

Struttura dell'applicazione JSF 2.0 Nel Web Content: views: le pagine della nostra applicazione sections: le porzioni di pagina  inclusione resources: immagini, css, javascript e altre risorse Attenzione: il framework, per default, utilizzerà “resources” come insieme di librerie di risorse

Navigazione Navigazione JSF = passaggio da una view a un’altra In JSF 1 la navigazione è impostata in faces-config.xml <faces-config> <navigation-rule> <from-view-id>*</from-view-id> <navigation-case> <from-outcome>risultato</from-outcome> <to-view-id>pagine/res.xhtml</to-view-id> </navigation-case> </navigation-rule> </faces-config> E quindi: <h:commandButton action="risultato" value="Conferma"/>

Navigazione (2) In JSF 2.0 la navigazione è semplificata: outcome<=>percorso della pagina (esclusa l'estensione) from-view-id<=> * Quindi non serve specificare nulla in faces-config: <h:commandButton action="pagine/res" value="Conferma"/>

Composizione e templating JSF 2.0 include il motore di templating Facelets, che permette la composizione di pagine in due modalità: 1. templating => "ereditarietà" 2. inclusione

Managed Bean e scope @ManagedBean dichiara che la classe deve essere "gestita" dalla JSF l'oggetto diventa utilizzabile nella pagine XMTML per nome ListController => #{listController} @RequestScoped  istanziato e distrutto ad ogni request @SessionScoped  mantenuto in session, stessa istanza per ogni request di quella sessione @ApplicationScoped  stessa istanza per ogni sessione

Composizione <ui:include>  migliore organizzazione, riuso, incapsulamento, parametrizzazione

I componenti JSF Oggetti Java che implementano le interfacce del framework (UIComponent e sub) Si renderizzano in "pezzi" di html + javascript + risorse Possibile creare i propri, quindi possibile usare quelli fatti da altri: basta includere un JAR (opportunamente creato) Sostanzialmente tre tipologie: INPUT  metodi setter e getter del MB OUTPUT  metodi getter ACTION  metodi action (ma anche getter e setter)

Converter Le JSF oggettificano Esistono convertitori automatici non dichiarati (String, Long, Int, BigDecimal, Date, ecc ) Possono essere creati convertitori custom: Da String (HTML/Parametro request) a Object Da object a String @FacesConverter(forClass=Camera.class) public class CameraConverter implements Converter L'interfaccia Converter obbliga a implementare i metodi getAsString getAsObject  Se la conversione va male  throw new ConverterException(…)  catturata e gestita dal framework

Validators Classi e/o metodi del MB che validano gli oggetti (già convertiti) passati come input dalla pagina Validatori built-in: <f:validateLongRange minimum="1" maximum="5"/> Validatori custom: @FacesValidator (value="validaEmail“) public class ValidaEmail implements Validator   Nella pagina: <f:validator validatorId="validaEmail"/>

Messaggi <f:messages>  messaggi multipli In JSF i messaggi agli utenti sono gestiti dal framework, attraverso l'oggetto FacesContext:   FacesContext.getCurrentInstance().addMessage( null, //null=nessun componente-> messaggio "GLOBALE" new FacesMessage("Errore") ); "input_email", //id componenti-> messaggio del componente Convertitori e validatori lanciano messaggi legati ai componenti a cui sono agganciati. I messaggi vengono visualizzati nella pagina in corrispondenza dei componenti <f:messages>  messaggi multipli <f:message for="input_email">  un singolo messaggio, relativo a un componente

Problemi comuni Equals Utilizzo dei componenti "select" e dei loro convertitori Date Scope Request

Conclusione Vantaggi: tutto più OO validazione eventi Svantaggi: performance potenzialmente più scadenti debugging complicato minor controllo

Argomenti non trattati Ajax Altri scope (solo CDI) <f:event> …