La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Corso JSF Java Server Faces Mauro Sanfilippo 02/09/2010."— Transcript della presentazione:

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

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

3 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

4 Servlet e JSP

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

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

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

8 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 ActionDipendono dal componente metodi ListenerDiversa firma metodi Validator

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

10 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: Risorse: ricerca: "Corso JSF"

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

12 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

13 Navigazione Navigazione JSF = passaggio da una view a unaltra In JSF 1 la navigazione è impostata in faces-config.xml * risultato pagine/res.xhtml E quindi:

14 Navigazione (2) In JSF 2.0 la navigazione è semplificata: 1.outcome percorso della pagina (esclusa l'estensione) 2.from-view-id * Quindi non serve specificare nulla in faces-config:

15 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

16 Managed Bean e o dichiara che la classe deve essere "gestita" dalla JSF o l'oggetto diventa utilizzabile nella pagine XMTML per nome ListController => istanziato e distrutto ad ogni mantenuto in session, stessa istanza per ogni request di quella stessa istanza per ogni sessione

17 Composizione migliore organizzazione, riuso, incapsulamento, parametrizzazione

18 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: o INPUT metodi setter e getter del MB o OUTPUT metodi getter o ACTION metodi action (ma anche getter e setter)

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

20 Validators Classi e/o metodi del MB che validano gli oggetti (già convertiti) passati come input dalla pagina Validatori built-in: Validatori (value="valida ) public class Valida implements Validator Nella pagina:

21 Messaggi 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") ); FacesContext.getCurrentInstance().addMessage( "input_ ", //id componenti-> messaggio del componente new FacesMessage("Errore") ); Convertitori e validatori lanciano messaggi legati ai componenti a cui sono agganciati. I messaggi vengono visualizzati nella pagina in corrispondenza dei componenti messaggi multipli un singolo messaggio, relativo a un componente

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

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

24 Argomenti non trattati Ajax Altri scope (solo CDI) …


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

Presentazioni simili


Annunci Google