03 Tapestry5 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

    Favorites, Groups & Events

    03 Tapestry5 In Action Introduzione - Presentation Transcript

    1.  
    2. Indice
      • Presentazione
      • Concetti chiave
      • Configurazione
      • Component Classes
      • Component Templates
      • Gestire gli eventi
      • Gestire la navigazione
      • Componenti predefiniti
    3. Presentazione
      • Cos' è?
        • Web framework creato da Haward L. Ship, orientato ai componenti, fortemente scalabile grazie anche alla gestione delle istanze tramite il pooling
    4. Presentazione
      • 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
    5. Presentazione
      • Moduli tapestry
        • tapestry-core
        • tapestry-ioc
        • tapestry-annotations
        • tapestry-upload
        • tapestry-hibernate
        • tapestry-spring
        • tapestry-test
    6. Concetti chiave
      • IOC
      • Tutto è componente
      • Runtime bytecode manipulation
      • Template html per la view
      • Persistenza delle variabili di classe
      • Injection dei servizi
      • Asset
    7. Configurazione
      • Editare il web.xml
      • Includere le dipendenze nel classpath
      • I vincoli di struttura
    8. Configurazione
      • editare il web.xml
    9. Configurazione
      • editare il web.xml
    10. Configurazione
      • editare il web.xml
    11. Configurazione
      • includere le dipendenze
    12. Configurazione
      • 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)
    13. Configurazione
      • 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
    14. Component classes
      • 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
    15. Component classes
      • 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
    16. Component classes
      • 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.
    17. Component templates
      • 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)
    18. Component templates
      • 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
    19. Component templates
      • 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 } )
    20. Gestire gli eventi
      • Gli event handler methods si definiscono:
      • Attraverso l'annotation OnEvent.
        • Es: @OnEvent(component=”formUtente”, value=”success”)
      • Rispettando la naming convention
        • on eventName [From componentId ].
          • es: void onSuccessFromFormUtente(String user, String pass)
    21. Gestire gli eventi
      • 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[]
    22. Gestire gli eventi
      • 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.
    23. Gestire la navigazione
      • 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)
    24. Componenti predefiniti
      • I principali componenti forniti da Tapestry sono:
      • Control ( If , Loop )
      • Link ( ActionLink , PageLink )
      • Form ( Form , TextField , DateField , PasswordField , Select )
      • Complessi ( BeanDisplay , BeanEditForm , Grid )

    + bobpuleybobpuley, 2 years ago

    custom

    502 views, 0 favs, 0 embeds more stats

    introduzione ai concetti base di tapestry 5

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 502
      • 502 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 4
    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