If you can't read please download the document
Upload
giampiero-granatella
View
1.293
Download
0
Embed Size (px)
Citation preview
Elements web component library
ManyDesignswww.manydesigns.com
ManyDesigns Elements
Cos' e dove utilizzare Elements
Impostazione di un progetto.
Demo: Dal modulo cartaceo al web in 15 min.
I principali componenti in elements
Sviluppi
ManyDesigns Elements
Elements una libreria open source di componenti web integrabile in altri Java web framework.
Elements astrae il layer di presentazione e si occupa di interagire con le richieste HTTP e gli oggetti della Business Logic indipendentemente dalle tecnologie utilizzate.
Facilita il riuso e lo sviluppo di propri componenti (atomici o composti)
Elements
ElementsComponenteComponenteComponenteJava BeansDB
Objects(Hibernate, iBatis)PortofinoAltro
(EJB, WS)
Http RequestHttp Response
ModelController
ViewDB
...
Esempio: componente per Google Maps
Esempio:
questionario
interattivo multipagina
Esempio ...Elements in Portofino 3.0
Demo
Creiamo una semplice applicazione che porti sul web un modulo cartaceo di richiesta abbonamento.
Per fare questo realizzeremo una semplice applicazione Java con servlet e jsp (ma alternativamente avremmo potuto usare un web framework quale Struts)
Passi illustrati nella Demo
STEP 1. Base: 1 Classe di Modello, 1 Componente, 1 pagine JSP per la view
STEP 2. Sottoinsieme field di una class per componenti e prefix: 3 Classi di Modello, 4 Componenti, 1 pagine JSP
STEP 3. Introduzione annotazioni: 3 Classi di Modello, 4 Componenti, 2 pagine JSP (invio e validate)
STEP 4. Elementi Composti Sequence: 3 Classi di Modello, 1+4 Componenti, 2 pagine JSP
STEP 5. Elementi Composti Wizard: 3 Classi di Modello, 1+4 Componenti, 2 pagine JSP
Dipendenze nel pom.xml
Elements, componenti core di Elements (123 k)
Elements-extras, componenti aggiuntivi (65 k)
Apache commons lang (261 k)
web.xml
My Web App
elementsFilter
com.manydesigns.elements.servlet.ElementsFilter
elementsFilter
/*
...
Iniziare un progetto con Elements
Realizzare il modello
Creare i componenti atomici di Elements interrogando la struttura del modello
Comporre i componenti atomici in componenti composti
Visualizzare I componenti
Annotation sul Modello
Le annotation sono utilizzate per apporre metadati significativi per Elements alle proprie classi Java.
Molte informazioni sono dedotte dalla reflection della classe ma ulteriori possono essere aggiunte per personalizzare il comportamento di un componente (come la label, l'help, ecc...).
Un componente Element
Sa dare una propria rappresentazione in xhtml
Ha un mode associato
Sa aggiornare I suoi dati leggendoli da una richiesta Http o da un Java Object
Sa validare i suoi dati
Sa scrivere rendere persistenti I suoi dati su un Object
Interfaccia Element
public interface Element extends XhtmlFragment {
public void readFromRequest
(HttpServletRequest req);
public boolean validate();
public void readFromObject(Object obj);
public void writeToObject(Object obj);
public Mode getMode();
public void setMode(Mode mode);
}
I Builder
In generale i builder permettono di creare componenti (Elements) a partire da configurazioni e parametri forniti. Sono dei costruttori pi flessibili.
E presente la classe ClassFormBuilder, che costruisce un form html a partire da una classe Java tramite reflection e lettura delle annotations.
Gli elementi composti
Viene utilizzato il design pattern Composite: il componente estende un ArrayList di Element e, al contempo, implementa Element.
La renderizzazione in xhtml e la lettura/scrittura sul proprio oggetto viene delegata ai figli (elementi atomici).
Tramite gli elementi composti sono create Sequenze di componenti, Selection o Wizard multipagina
Classificazione dei field
Feature di elements
Mappatura di tutti i componenti xhtml
Validazione dei campi
TagLibrary per Struts
Generazione di xhtml well formed
Modalit per la visione del componente (edit, view, preview, hidden)
Internazionalizzazione
Sviluppi
Integrazione
Utilizzarlo in altri web framework
Integrarlo con framework di persistenza, web services, altri sistemi esterni
Personalizzazioni
Creazione di nuovi componenti atomici o composti di uso generale
Creazione di librerie di componenti di uso comune
Altro???
Click to edit the title text format
Click to edit the outline text format
Second Outline Level
Third Outline Level
Fourth Outline Level
Fifth Outline Level
Sixth Outline Level
Seventh Outline Level
Eighth Outline Level
Ninth Outline Level