Tapestry Overview

    Component-based

    Minimizes java coding

    Developer Focused

  Benefits

    Simplified, readable HTML

    True separation of MVC

    minimal java coding

    Great I18N
 
    Great developer feedback (fix)

    True component reuse

  Simple Forms

    Login page

  WAR layout

    Page is three:

      HTML file, the view

      Java Code

      XML file that tie two together

  Start with Plain HTML

    Mark tags as components by giving them the jwcid attrs.  There is a
    standard set of components that can be bound to html elements

    OGNL does the value binding with the value attribute.

  Create the XML part.  

    Identifies the java class

    (problem) three artifacts for the page

  Create the Java Part

  Q.1 Is there a scoped namespace facility?

  Listeners are constrained to be a certain type.  

  Q.2 Are there any other kinds of listeners?

  Has the concept of an active page.

  Validation

    Error message is per page.  Can there be per-component error
    messages? Yes.  He mentions lots of things that can be done with the
    implementation.  More components.  

    Client side validation, is easy to do.  Just turn it on.

  Has conditional tags.  This is done by having <span> with id

  (copy) When displaying the error page:

    Line precise error message

    Display evey possible piece of info you have.  Query params, system
    properties, etc.  

    Only do this during development.

  The incorrect page pooling problem shouldn't happen
 
  Q.3: Are all beans defined in .page files?  Can you have app session,
  scoped beans?

  Mega Components

    Table Component

      They have per-cell renderer.

    Palette: does some AJAX stuff

  Principles

    Simplicity

    Consistency

    Efficiency

    Feedback