Un Framework Per Java Enterprise
Total Page:16
File Type:pdf, Size:1020Kb
Seam - Componenti Contestuali Un framework per Java Enterprise 2.1.2 di Gavin King, Pete Muir, Norman Richards, Shane Bryzak, Michael Yuan, Mike Youngstrom, Michael Yuan, Jay Balunas, Dan Allen, Max Rydahl Andersen, Emmanuel Bernard, Nicklas Karlsson, Daniel Roth, Matt Drees, Jacob Orshalick, e Marek Novotny edited by Samson Kittoli and thanks to James Cobb (Design Grafico), Cheyenne Weaver (Design Grafico), Mark Newton, Steve Ebersole, Michael Courcy (Traduzione in francese), Nicola Benaglia (Traduzione in italiano), Stefano Travelli (Traduzione in italiano), Francesco Milesi (Traduzione in italiano), e Japan JBoss User Group (Traduzione in giapponese) Introduzione a JBoss Seam ............................................................................................ xvii 1. Contribuire a Seam ............................................................................................. xxi 1. Tutorial di Seam .......................................................................................................... 1 1.1. Utilizzo degli esempi di Seam .............................................................................. 1 1.1.1. Eseguire gli esempi in JBoss AS .............................................................. 1 1.1.2. Eseguire gli esempi in Tomcat .................................................................. 2 1.1.3. Eseguire i test degli esempi ...................................................................... 2 1.2. La prima applicazione di Seam: esempio di registrazione ...................................... 2 1.2.1. Capire il codice ........................................................................................ 3 1.2.2. Come funziona ....................................................................................... 15 1.3. Liste cliccabili in Seam: esempio di messaggi ..................................................... 16 1.3.1. Capire il codice ...................................................................................... 16 1.3.2. Come funziona ....................................................................................... 22 1.4. Seam e jBPM: esempio di lista todo .................................................................. 23 1.4.1. Capire il codice ...................................................................................... 23 1.4.2. Come funziona ....................................................................................... 31 1.5. Seam pageflow: esempio di indovina-numero ..................................................... 32 1.5.1. Capire il codice ...................................................................................... 32 1.5.2. Come funziona ....................................................................................... 41 1.6. Un'applicazione Seam completa: esempio di Prenotazione Hotel .......................... 42 1.6.1. Introduzione ........................................................................................... 42 1.6.2. Panoramica sull'esempio di prenotazione ................................................. 44 1.6.3. Capire le conversazioni in Seam ............................................................. 44 1.6.4. La pagina di debug di Seam ................................................................... 53 1.7. Conversazioni Annidate: estendere l'esempio di Prenotazione Hotel ..................... 54 1.7.1. Introduzione ........................................................................................... 54 1.7.2. Capire le Conversazioni Annidate ............................................................ 56 1.8. Un'applicazione completa di Seam e jBPM: esempio di Negozio DVD ................... 63 1.9. URL segnalibro con l'esempio Blog .................................................................... 65 1.9.1. Utilizzo di MVC "pull"-style ...................................................................... 66 1.9.2. Pagina bookmarkable dei risultati di ricerca ............................................. 68 1.9.3. Uso di MVC push in un'applicazione RESTful .......................................... 72 2. Iniziare con Seam usando seam-gen ......................................................................... 77 2.1. Prima di iniziare ................................................................................................ 77 2.2. Comfigurare un nuovo progetto ......................................................................... 78 2.3. Creazione di una nuova azione ......................................................................... 81 2.4. Creazione di una form con un'azione ................................................................. 82 2.5. Generazione di un'applicazione da database esistente ........................................ 83 2.6. Generazione di un'applicazione da entity JPA/EJB3 già esistenti .......................... 84 2.7. Eseguire il deploy dell'applicazione come EAR ................................................... 84 2.8. Seam e hot deploy incrementale ........................................................................ 84 2.9. Uso di Seam con JBoss 4.0 .............................................................................. 85 2.9.1. Install JBoss 4.0 .................................................................................... 85 2.9.2. Installare JSF 1.2 RI .............................................................................. 86 iii Seam - Componenti Contestuali 3. Iniziare con Seam usando JBoss Tools .................................................................... 87 3.1. Prima di iniziare ................................................................................................ 87 3.2. Configurare un nuovo progetto Seam ................................................................. 87 3.3. Creazione di una nuova azione ........................................................................ 103 3.4. Creazione di una form con un'azione ............................................................... 105 3.5. Generare un'applicazione da un database esistente .......................................... 107 3.6. Seam ed l'hot deploy incrementale con JBoss Tools ......................................... 108 4. Il modello a componenti contestuali ........................................................................ 109 4.1. Contesti di Seam ............................................................................................ 109 4.1.1. Contesto Stateless ............................................................................... 109 4.1.2. Contesto Evento ................................................................................... 110 4.1.3. Contesto Pagina ................................................................................... 110 4.1.4. Contesto Conversazione ....................................................................... 110 4.1.5. Contesto Sessione ............................................................................... 111 4.1.6. Contesto processo di Business ............................................................. 111 4.1.7. Contesto Applicazione .......................................................................... 111 4.1.8. Variabili di contesto .............................................................................. 111 4.1.9. Priorità di ricerca del contesto ............................................................... 112 4.1.10. Modello di concorrenza ....................................................................... 112 4.2. Componenti di Seam ....................................................................................... 113 4.2.1. Bean di sessione stateless .................................................................... 113 4.2.2. Bean di sessione stateful ...................................................................... 114 4.2.3. Entity bean .......................................................................................... 114 4.2.4. JavaBeans ........................................................................................... 115 4.2.5. Message-driven bean ........................................................................... 115 4.2.6. Intercettazione ...................................................................................... 116 4.2.7. Nomi dei componenti ............................................................................ 116 4.2.8. Definire lo scope di un componente ....................................................... 118 4.2.9. Componenti con ruoli multipli ................................................................ 119 4.2.10. Componenti predefiniti ........................................................................ 119 4.3. Bijection .......................................................................................................... 120 4.4. Metodi del ciclo di vita ..................................................................................... 123 4.5. Installazione condizionale ................................................................................ 123 4.6. Logging .......................................................................................................... 125 4.7. L'interfaccia Mutable e @ReadOnly ................................................................... 126 4.8. Componenti factory e manager ........................................................................ 128 5. Configurare i componenti Seam .............................................................................