Tapestry 5 in Action Introduzione

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Group

    Tapestry 5 in Action Introduzione - Presentation Transcript

    1. Tapestry5 in action Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Introduzione Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 1 Tapestry5 in action Javaday Roma - 01/12/2007
    2. Indice Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Presentazione ● Concetti chiave ● Configurazione ● Component Classes ● Component Templates ● Gestire gli eventi ● Gestire la navigazione ● Componenti predefiniti ● Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 2 Tapestry5 in action Javaday Roma - 01/12/2007
    3. Presentazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Cos' è? ● Web framework creato da Haward L. Ship, orientato – ai componenti, fortemente scalabile grazie anche alla gestione delle istanze tramite il pooling Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 3 Tapestry5 in action Javaday Roma - 01/12/2007
    4. Presentazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Goals ● Non occorre estendere o implementare alcuna – classe Gestione trasparente dello stato dei componenti – Rapidità di sviluppo – Semplicità di utilizzo dei componenti – Live reloading in fase di sviluppo – Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 4 Tapestry5 in action Javaday Roma - 01/12/2007
    5. Presentazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Moduli tapestry ● tapestry-core – tapestry-ioc – tapestry-annotations – tapestry-upload – tapestry-hibernate – tapestry-spring – tapestry-test – Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 5 Tapestry5 in action Javaday Roma - 01/12/2007
    6. Concetti chiave Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License IOC ● Tutto è componente ● Runtime bytecode manipulation ● Template html per la view ● Persistenza delle variabili di classe ● Injection dei servizi ● Asset ● Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 6 Tapestry5 in action Javaday Roma - 01/12/2007
    7. Configurazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Editare il web.xml ● Includere le dipendenze nel classpath ● I vincoli di struttura ● Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 7 Tapestry5 in action Javaday Roma - 01/12/2007
    8. Configurazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License editare il web.xml [...] <context-param> <param-name>tapestry.app-package</param-name> <param-value>javaday.jukebox.web</param-value> </context-param> <filter> <filter-name>juke</filter-name> <filter-class> org.apache.tapestry.TapestryFilter </filter-class> </filter> <filter-mapping> <filter-name>juke</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> [...] Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 8 Tapestry5 in action Javaday Roma - 01/12/2007
    9. Configurazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License editare il web.xml [...] <context-param> <param-name>tapestry.app-package</param-name> <param-value>javaday.jukebox.web</param-value> </context-param> <filter> <filter-name>juke</filter-name> <filter-class> org.apache.tapestry.TapestryFilter </filter-class> </filter> <filter-mapping> <filter-name>juke</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> [...] Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 9 Tapestry5 in action Javaday Roma - 01/12/2007
    10. Configurazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License editare il web.xml [...] <context-param> <param-name>tapestry.app-package</param-name> <param-value>javaday.jukebox.web</param-value> </context-param> <filter> <filter-name>juke</filter-name> <filter-class> org.apache.tapestry.TapestryFilter </filter-class> </filter> <filter-mapping> <filter-name>juke</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> [...] Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 10 Tapestry5 in action Javaday Roma - 01/12/2007
    11. Configurazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License includere le dipendenze <dependencies> <dependency> <groupId>org.apache.tapestry</groupId> <artifactId>tapestry-core</artifactId> <version>5.0.6</version> </dependency> <dependency> <groupId>org.apache.tapestry</groupId> <artifactId>tapestry-ioc</artifactId> <version>5.0.6</version> </dependency> <dependency> <groupId>org.apache.tapestry</groupId> <artifactId>tapestry-annotations</artifactId> <version>5.0.6</version> </dependency> </dependencies> Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 11 Tapestry5 in action Javaday Roma - 01/12/2007
    12. Configurazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License i vincoli di struttura organizzazione delle directories tapestry.app-package (dichiarato nel web.xml) – pages (component classes, templates e messages) ● components (component classes, templates e messages) ● mixins (component classes, templates e messages) ● state (classi per la gestione dello stato dell'applicazione) ● services (classi per la cofigurazione del container IOC) ● Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 12 Tapestry5 in action Javaday Roma - 01/12/2007
    13. Configurazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License i vincoli di struttura organizzazione dei files ● Il template e la classe di un componente devono – essere nello stesso package e avere lo stesso nome Nel caso delle pages il template può trovarsi nella – webroot Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 13 Tapestry5 in action Javaday Roma - 01/12/2007
    14. Component classes Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Dal punto di vista dello sviluppatore: Pagine e componenti differiscono solo per il ● package a cui appartengono Una pagina è sostanzialmente il root element di ● una gerarchia di componenti Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 14 Tapestry5 in action Javaday Roma - 01/12/2007
    15. Component classes Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Di base una component class deve: Essere pubblica ● Trovarsi nel package corretto ● root-package/pages – root-package/components – root-package/mixins – Avere un costruttore pubblico senza argomenti ● Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 15 Tapestry5 in action Javaday Roma - 01/12/2007
    16. Component classes Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Una component class può: Essere posizionata in un qualunque subpackage ● Avere delle variabili di istanza ● devono essere private – di default vengono reimpostate ad ogni request – Se annotate come persistenti mantengono il valore – cross-request Avere dei metodi per la gestione di eventi o del ● ciclo di vita del componente stesso. Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 16 Tapestry5 in action Javaday Roma - 01/12/2007
    17. Component templates Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Un component template deve: Rispettare le regole di well formed xml ● Avere estensione .tml ● Trovarsi nel package corretto ● root-package/components – root-package/mixins – root-package/pages – Web app contextRoot (solo per le pages) – Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 17 Tapestry5 in action Javaday Roma - 01/12/2007
    18. Component templates Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Un component template può: Essere localizzato (SomeComponent_it.tml) ● Essere ereditato dalla classe parent ● Dichiarare un Doctype (quello sul componente ● più esterno sovrascrive gli altri) Dichiarare il tapestry namespace indispensabile ● per poter usare i tapestry components e quelli custom Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 18 Tapestry5 in action Javaday Roma - 01/12/2007
    19. Component templates Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License I principali tapestry elements sono: body (renderizza il body del componente) ● block (incapsula un frammento di template) ● parameter (speciale tipo di block) ● container (workaround per rispettare il well ● formed) expansions (output render, simile al EL. Es: ● ${espressione}) Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 19 Tapestry5 in action Javaday Roma - 01/12/2007
    20. Gestire gli eventi Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Gli event handler methods si definiscono: Attraverso l'annotation OnEvent. ● Es: @OnEvent(component=”formUtente”, – value=”success”) Rispettando la naming convention ● oneventName[FromcomponentId]. – es: void onSuccessFromFormUtente(String user, String ● pass) Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 20 Tapestry5 in action Javaday Roma - 01/12/2007
    21. Gestire gli eventi Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License I parametri passati agli event handler methods: Possono essere 0 o più ● Vengono automaticamente convertiti al tipo ● definito nella signature del metodo (per ogni tipo riconosciuto da tapestry) Possono essere intercettati genericamente ● definendo un unico parametro di tipo Object[] Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 21 Tapestry5 in action Javaday Roma - 01/12/2007
    22. Gestire gli eventi Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Da notare che: Nelle urls generate dagli eventi, non è presente ● alcuna informazione su cosa debba accadere I componenti che definiscono degli event ● handler methods, hanno la responsabilità di conoscere e implementare il comportamento che deve verificarsi in corrispondenza dell'evento. Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 22 Tapestry5 in action Javaday Roma - 01/12/2007
    23. Gestire la navigazione Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Gli event handler methods e lifecycle methods possono restituire: void o null (implica una redirect alla pagina – corrente) String (nome della pagina da renderizzare) – Class (corrispondente ad una page) – Page (deve essere creata con @InjectPage) – Link (redirect) – Stream (per pdf, download o.... mp3) – Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 23 Tapestry5 in action Javaday Roma - 01/12/2007
    24. Componenti predefiniti Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License I principali componenti forniti da Tapestry sono: Control (If, Loop) ● Link (ActionLink, PageLink) ● Form (Form, TextField, DateField, ● PasswordField, Select) Complessi (BeanDisplay, BeanEditForm, Grid) ● Marco Pugliese - bobpuley@gmail.com – Java Italian Portal 24 Tapestry5 in action Javaday Roma - 01/12/2007

    + maraexceptionmaraexception, 2 years ago

    custom

    1167 views, 0 favs, 0 embeds more stats

    Jakarta Tapestry è un framework basato su un model more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1167
      • 1167 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 3
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events