You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by bu...@apache.org on 2015/11/08 18:21:56 UTC

svn commit: r971770 [2/5] - in /websites/production/tapestry/content: ./ cache/

Modified: websites/production/tapestry/content/documentation.html
==============================================================================
--- websites/production/tapestry/content/documentation.html (original)
+++ websites/production/tapestry/content/documentation.html Sun Nov  8 17:21:51 2015
@@ -57,7 +57,7 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><div style="float:right;margin-left:1em"><h2 id="Documentation-AllTopics">All Topics</h2><ul class="childpages-macro"><li><a shape="rect" href="introduction.html">Introduction</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="principles.html">Principles</a></li><li><a shape="rect" href="tapestry-tutorial.html">Tapestry Tutorial</a><ul class="childpages-macro"><li><a shape="rect" href="dependencies-tools-and-plugins.html">Dependencies, Tools and Plugins</a></li><li><a shape="rect" href="creating-the-skeleton-application.html">Creating The Skeleton Application</a></li><li><a shape="rect" href="exploring-the-project.html">Exploring the Project</a></li><li><a shape="rect" href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo Guessing Game</a></li><li><a shape="rect" href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To Create User Forms</a></li><li><a shape="rect" hr
 ef="using-tapestry-with-hibernate.html">Using Tapestry With Hibernate</a></li></ul></li><li><a shape="rect" href="user-guide.html">User Guide</a><ul class="childpages-macro"><li><a shape="rect" href="project-layout.html">Project Layout</a></li><li><a shape="rect" href="configuration.html">Configuration</a></li><li><a shape="rect" href="runtime-exceptions.html">Runtime Exceptions</a></li><li><a shape="rect" href="class-reloading.html">Class Reloading</a></li><li><a shape="rect" href="component-reference.html">Component Reference</a></li><li><a shape="rect" href="annotations.html">Annotations</a></li><li><a shape="rect" href="component-classes.html">Component Classes</a></li><li><a shape="rect" href="component-templates.html">Component Templates</a></li><li><a shape="rect" href="property-expressions.html">Property Expressions</a></li><li><a shape="rect" href="component-parameters.html">Component Parameters</a></li><li><a shape="rect" href="parameter-type-coercion.html">Parameter Type 
 Coercion</a></li><li><a shape="rect" href="layout-component.html">Layout Component</a></li><li><a shape="rect" href="component-mixins.html">Component Mixins</a><ul class="childpages-macro"><li><a shape="rect" href="built-in-mixins.html">Built-in Mixins</a></li></ul></li><li><a shape="rect" href="page-navigation.html">Page Navigation</a></li><li><a shape="rect" href="localization.html">Localization</a></li><li><a shape="rect" href="page-life-cycle.html">Page Life Cycle</a></li><li><a shape="rect" href="request-processing.html">Request Processing</a></li><li><a shape="rect" href="component-rendering.html">Component Rendering</a></li><li><a shape="rect" href="component-events.html">Component Events</a></li><li><a shape="rect" href="url-rewriting.html">URL rewriting</a></li><li><a shape="rect" href="dom.html">DOM</a></li><li><a shape="rect" href="response-compression.html">Response Compression</a></li><li><a shape="rect" href="security.html">Security</a></li><li><a shape="rect" href="ht
 tps.html">HTTPS</a></li><li><a shape="rect" href="content-type-and-markup.html">Content Type and Markup</a></li><li><a shape="rect" href="persistent-page-data.html">Persistent Page Data</a></li><li><a shape="rect" href="session-storage.html">Session Storage</a><ul class="childpages-macro"><li><a shape="rect" href="clustering-issues.html">Clustering Issues</a></li></ul></li><li><a shape="rect" href="injection.html">Injection</a></li><li><a shape="rect" href="environmental-services.html">Environmental Services</a></li><li><a shape="rect" href="css.html">CSS</a></li><li><a shape="rect" href="assets.html">Assets</a></li><li><a shape="rect" href="forms-and-validation.html">Forms and Validation</a></li><li><a shape="rect" href="beaneditform-guide.html">BeanEditForm Guide</a></li><li><a shape="rect" href="uploading-files.html">Uploading Files</a></li><li><a shape="rect" href="logging.html">Logging</a></li><li><a shape="rect" href="unit-testing-pages-or-components.html">Unit testing pages o
 r components</a></li><li><a shape="rect" href="integration-testing.html">Integration Testing</a></li><li><a shape="rect" href="development-dashboard.html">Development Dashboard</a></li><li><a shape="rect" href="modules.html">Modules</a><ul class="childpages-macro"><li><a shape="rect" href="built-in-modules.html">Built In Modules</a></li><li><a shape="rect" href="third-party-modules.html">Third Party Modules</a></li></ul></li><li><a shape="rect" href="ioc.html">IoC</a><ul class="childpages-macro"><li><a shape="rect" href="tapestry-ioc-overview.html">Tapestry IoC Overview</a></li><li><a shape="rect" href="tapestry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a shape="rect" href="defining-tapestry-ioc-services.html">Defining Tapestry IOC Services</a></li><li><a shape="rect" href="service-advisors.html">Service Advisors</a></li><li><a shape="rect" href="tapestry-ioc-decorators.html">Tapestry IoC Decorators</a></li><li><a shape="rect" href="tapestry-ioc-configuration.html">Tapestr
 y IoC Configuration</a></li><li><a shape="rect" href="case-insensitivity.html">Case Insensitivity</a></li><li><a shape="rect" href="autoloading-modules.html">Autoloading Modules</a></li><li><a shape="rect" href="service-implementation-reloading.html">Service Implementation Reloading</a></li><li><a shape="rect" href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a shape="rect" href="symbols.html">Symbols</a></li><li><a shape="rect" href="chainbuilder-service.html">ChainBuilder Service</a></li><li><a shape="rect" href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a shape="rect" href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a shape="rect" href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><a shape="rect" href="injection-in-detail.html">Injection in Detail</a></li><li><a shape="rect" href="object-providers.html">Object Providers</a></li><li><a shape="rect" href="service-serialization.html">Service Ser
 ialization</a></li><li><a shape="rect" href="type-coercion.html">Type Coercion</a></li><li><a shape="rect" href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a shape="rect" href="registry-startup.html">Registry Startup</a></li><li><a shape="rect" href="parallel-execution.html">Parallel Execution</a></li><li><a shape="rect" href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a shape="rect" href="using-jsr-330-standard-annotations.html">Using JSR 330 standard annotations</a></li><li><a shape="rect" href="operation-tracker.html">Operation Tracker</a></li></ul></li><li><a shape="rect" href="hibernate-core.html">Hibernate - Core</a><ul class="childpages-macro"><li><a shape="rect" href="hibernate-core-conf.html">Hibernate - Core - Conf</a></li><li><a shape="rect" href="hibernate.html">Hibernate</a></li></ul></li><li><a shape="rect" href="integrating-with-spring-framework.html">Integrating with Spring Framework</a></li><li><a shape="rect" href="bean-v
 alidation.html">Bean Validation</a></li><li><a shape="rect" href="component-report.html">Component Report</a></li><li><a shape="rect" href="aliases.html">Aliases</a></li><li><a shape="rect" href="integrating-with-jpa.html">Integrating with JPA</a></li><li><a shape="rect" href="client-side-javascript.html">Client-Side JavaScript</a><ul class="childpages-macro"><li><a shape="rect" href="javascript-modules.html">JavaScript Modules</a></li><li><a shape="rect" href="coffeescript.html">CoffeeScript</a></li><li><a shape="rect" href="legacy-javascript.html">Legacy JavaScript</a></li><li><a shape="rect" href="ajax-and-zones.html">Ajax and Zones</a></li></ul></li></ul></li><li><a shape="rect" href="cheat-sheets.html">Cheat Sheets</a><ul class="childpages-macro"><li><a shape="rect" href="application-module-class-cheat-sheet.html">Application Module Class Cheat Sheet</a></li><li><a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a></li><li><a shape="rect" href="tapestry-fo
 r-jsf-users.html">Tapestry for JSF Users</a></li></ul></li><li><a shape="rect" href="cookbook.html">Cookbook</a><ul class="childpages-macro"><li><a shape="rect" href="default-parameter.html">Default Parameter</a></li><li><a shape="rect" href="overriding-exception-reporting.html">Overriding Exception Reporting</a></li><li><a shape="rect" href="error-page-recipe.html">Error Page Recipe</a></li><li><a shape="rect" href="supporting-informal-parameters.html">Supporting Informal Parameters</a></li><li><a shape="rect" href="component-libraries.html">Component Libraries</a></li><li><a shape="rect" href="switching-cases.html">Switching Cases</a></li><li><a shape="rect" href="enum-parameter-recipe.html">Enum Parameter Recipe</a></li><li><a shape="rect" href="extending-the-if-component.html">Extending the If Component</a></li><li><a shape="rect" href="meta-programming-page-content.html">Meta-Programming Page Content</a></li><li><a shape="rect" href="using-select-with-a-list.html">Using Select 
 With a List</a></li><li><a shape="rect" href="ioc-cookbook.html">IoC cookbook</a><ul class="childpages-macro"><li><a shape="rect" href="ioc-cookbook-basic-services-and-injection.html">IoC Cookbook - Basic Services and Injection</a></li><li><a shape="rect" href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC Services</a></li><li><a shape="rect" href="ioc-cookbook-patterns.html">IoC Cookbook - Patterns</a></li><li><a shape="rect" href="ioc-cookbook-service-configurations.html">IoC cookbook - Service Configurations</a></li></ul></li><li><a shape="rect" href="performance-and-clustering.html">Performance and Clustering</a></li></ul></li><li><a shape="rect" href="frequently-asked-questions.html">Frequently Asked Questions</a><ul class="childpages-macro"><li><a shape="rect" href="general-questions.html">General Questions</a></li><li><a shape="rect" href="templating-and-markup-faq.html">Templating and Markup FAQ</a></li><li><a shape="rect" href="page-and-component-
 classes-faq.html">Page And Component Classes FAQ</a></li><li><a shape="rect" href="forms-and-form-components-faq.html">Forms and Form Components FAQ</a></li><li><a shape="rect" href="beaneditform-faq.html">BeanEditForm FAQ</a></li><li><a shape="rect" href="link-components-faq.html">Link Components FAQ</a></li><li><a shape="rect" href="component-events-faq.html">Component Events FAQ</a></li><li><a shape="rect" href="javascript-faq.html">JavaScript FAQ</a></li><li><a shape="rect" href="ajax-components-faq.html">Ajax Components FAQ</a></li><li><a shape="rect" href="injection-faq.html">Injection FAQ</a></li><li><a shape="rect" href="tapestry-inversion-of-control-faq.html">Tapestry Inversion of Control FAQ</a></li><li><a shape="rect" href="security-faq.html">Security FAQ</a></li><li><a shape="rect" href="integration-with-existing-applications.html">Integration with existing applications</a></li><li><a shape="rect" href="request-processing-faq.html">Request Processing FAQ</a></li><li><a s
 hape="rect" href="limitations.html">Limitations</a></li><li><a shape="rect" href="specific-errors-faq.html">Specific Errors FAQ</a></li><li><a shape="rect" href="hibernate-support-faq.html">Hibernate Support FAQ</a></li><li><a shape="rect" href="maven-support-faq.html">Maven Support FAQ</a></li><li><a shape="rect" href="release-upgrade-faq.html">Release Upgrade FAQ</a></li></ul></li><li><a shape="rect" href="release-notes.html">Release Notes</a><ul class="childpages-macro"><li><a shape="rect" href="how-to-upgrade.html">How to Upgrade</a></li><li><a shape="rect" href="release-notes-50.html">Release Notes 5.0</a></li><li><a shape="rect" href="release-notes-51.html">Release Notes 5.1</a></li><li><a shape="rect" href="release-notes-52.html">Release Notes 5.2</a><ul class="childpages-macro"><li><a shape="rect" href="release-notes-520.html">Release Notes 5.2.0</a></li><li><a shape="rect" href="release-notes-521.html">Release Notes 5.2.1</a></li><li><a shape="rect" href="release-notes-522.
 html">Release Notes 5.2.2</a></li><li><a shape="rect" href="release-notes-523.html">Release Notes 5.2.3</a></li><li><a shape="rect" href="release-notes-524.html">Release Notes 5.2.4</a></li><li><a shape="rect" href="release-notes-525.html">Release Notes 5.2.5</a></li><li><a shape="rect" href="release-notes-526.html">Release Notes 5.2.6</a></li></ul></li><li><a shape="rect" href="release-notes-53.html">Release Notes 5.3</a></li><li><a shape="rect" href="release-notes-531.html">Release Notes 5.3.1</a></li><li><a shape="rect" href="release-notes-532.html">Release Notes 5.3.2</a></li><li><a shape="rect" href="release-notes-533.html">Release Notes 5.3.3</a></li><li><a shape="rect" href="release-notes-534.html">Release Notes 5.3.4</a></li><li><a shape="rect" href="release-notes-535.html">Release Notes 5.3.5</a></li><li><a shape="rect" href="release-notes-536.html">Release Notes 5.3.6</a></li><li><a shape="rect" href="release-notes-537.html">Release Notes 5.3.7</a></li><li><a shape="rect" 
 href="release-notes-54.html">Release Notes 5.4</a></li><li><a shape="rect" href="release-notes-538.html">Release notes 5.3.8</a></li></ul></li><li><a shape="rect" href="javascript-rewrite-in-54.html">JavaScript Rewrite in 5.4</a></li><li><a shape="rect" href="support.html">Support</a></li><li><a shape="rect" href="developer-information.html">Developer Information</a><ul class="childpages-macro"><li><a shape="rect" href="building-tapestry-from-source.html">Building Tapestry from Source</a></li><li><a shape="rect" href="confluence-site-setup.html">Confluence Site Setup</a><ul class="childpages-macro"><li><a shape="rect" href="since-and-deprecated-user-macros.html">Since and Deprecated User Macros</a></li></ul></li><li><a shape="rect" href="developer-bible.html">Developer Bible</a></li><li><a shape="rect" href="release-process.html">Release Process</a></li><li><a shape="rect" href="the-tapestry-jail.html">The tapestry jail</a></li><li><a shape="rect" href="version-numbers.html">Version
  Numbers</a></li></ul></li></ul></div><p>Welcome to the Tapestry 5 Documentation. A rich collection of guides is available to teach beginners the basics and help even experienced developers deepen their understanding of Tapestry's power. <em>Code less, deliver more!</em></p><h1 id="Documentation-Highlights">Highlights</h1><p>These are the most useful starting points for common needs.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="introduction.html">Introduction</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An overview of Tapestry's general approach and philosophy</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="getting-started.html">Getting Started</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick guide to creating your first Tapestry project, using Maven</p></td></tr><tr><td colspan="1" rowspan="1" class="c
 onfluenceTd"><p><a shape="rect" href="tapestry-tutorial.html">Tapestry Tutorial</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Picks up where <em>Getting Started</em> leaves off, explaining in greater detail how Tapestry works</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="user-guide.html">User Guide</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Detailed articles on every Tapestry feature</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="community.html">Community</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Getting support, mailing lists, JIRA, outside resources, and access to the source</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="cookbook.html">Cookbook</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Guides to doing common things with Tapestry</p></td></tr><tr><td colspan="1" rowspan
 ="1" class="confluenceTd"><p><strong><a shape="rect" href="frequently-asked-questions.html">FAQ</a></strong></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick place to check for common problems and solutions</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A concise guide to component classes, methods and annotations</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://refcardz.dzone.com/refcardz/apache-tapestry-50?oid=hom7948" >Refcard</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A color, six page foldout guide to Tapestry 5.0 (PDF)</p></td></tr></tbody></table></div><h1 id="Documentation-APIandComponentReference">API and Component Reference</h1><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
 rowspan="1" class="confluenceTh"><p>API (Javadoc):</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.1<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/">5.3.7 (current)</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><a shape="rect" class="external-link" href="http://tapestry.apache.org/5.4/">5.4 (beta)</a></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Component Reference:</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.1<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="comp
 onent-reference.html">5.3.7 (current)</a></p></td><td colspan="1" rowspan="1" class="confluenceTd">same as current</td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Release Notes:</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="release-notes-50.html">5.0</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="release-notes-51.html">5.1</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="release-notes-52.html">5.2</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="release-notes.html">5.3.7 (current)</a></p></td><td colspan="1" rowspan="1" class="confluenceTd">not yet available</td></tr></tbody></table></div><p><sup>1</sup> needs to be built manually from archived sources at <a shape="rect" class="external-link" href="http://archive.apache.org/dist/tapestry/">http://archive.apache.org/dist/tapestry/</a>.</p><h1 id="Documentation-UserGuide"
 >User Guide</h1><p><span class="confluence-anchor-link" id="Documentation-userguide"></span>The <a shape="rect" href="user-guide.html">User Guide</a> consists of over 75 pages of detailed information on the concepts behind Tapestry and instructions on how to use this powerful tool. Highlights include:</p><ul><li><a shape="rect" href="legacy-javascript.html">Legacy JavaScript</a> and <a shape="rect" href="ajax-and-zones.html">Ajax and Zones</a> describe Tapestry's built-in support for dynamic in-page behavior.</li><li><a shape="rect" href="integrating-with-spring-framework.html">Integrating with Spring Framework</a> describes how to integrate Spring into your Tapestry application.</li><li><a shape="rect" href="hibernate.html">Tapestry/Hibernate Integration Library</a> provides out-of-the-box support for using Hibernate 3.</li><li><a shape="rect" href="bean-validation.html">JSR 303: Bean Validation</a> shows how to use standard annotations for validation</li><li><a shape="rect" href="
 integration-testing.html">Integration Testing</a> shows how to test your application with Selenium.</li></ul><p><a shape="rect" href="user-guide.html">More topics</a>...</p><h1 id="Documentation-BlogsbyTapestryDevelopersandtheCommunity">Blogs by Tapestry Developers and the Community</h1><ul><li><a shape="rect" class="external-link" href="http://tapestryjava.blogspot.com/" >Tapestry Central</a> is Howard Lewis Ship's blog. As the creator of Tapestry, he provides valuable insights into Tapestry's latest features and future directions.</li><li><a shape="rect" class="external-link" href="http://blog.tapestry5.de/" >Igor Drobiazko's blog</a> (committer &amp; PMC) contains news on Tapestry development and will guide you through some of the most exciting parts of Tapestry.</li><li><a shape="rect" class="external-link" href="http://tawus.wordpress.com/" >Java Magic</a> (by Taha Hafeez, committer) has a series of tutorials illustrating some of the more advanced Tapestry and Plastic features 
 and techniques.</li><li><a shape="rect" class="external-link" href="http://blog.andyhot.gr/tag/tapestry/" >Andreas Andreou's blog</a> (committer &amp; PMC) has news and commentary on Tapestry.</li><li><a shape="rect" class="external-link" href="http://spreadthesource.com/" >Spread the Source blog</a> (Christophe Cordenier and Robin Komiwes) has news and advanced tutorials on Tapestry 5.</li></ul><h1 id="Documentation-BooksonTapestry">Books on Tapestry</h1><p>There are at least 8 published <a shape="rect" href="books.html">books on Tapestry</a>, including two on Tapestry 5 &#8212; and more on the way.</p><h1 id="Documentation-ArticlesonTapestry">Articles on Tapestry</h1><ul><li>This <a shape="rect" class="external-link" href="http://www.laliluna.de/articles/the-web-framework-evaluation.html" >eBook</a> published in 2009 contains a <a shape="rect" class="external-link" href="http://www.laliluna.de/articles/2009/08/14/tapestry-web-framework-evaluation-and-test.html" >good introduction 
 and analysis of Tapestry 5</a></li></ul><ul><li><a shape="rect" class="external-link" href="http://www.infoq.com/articles/tapestry5-intro" >Tapestry 5 for Nonbelievers</a> will convince the skeptical why Tapestry is the best web framework.</li></ul><p><a shape="rect" href="articles.html">More articles</a>...</p><h1 id="Documentation-TapestryPresentations">Tapestry Presentations</h1><ul><li>Mark W. Shead's <a shape="rect" class="external-link" href="http://blog.markwshead.com/900/tapestry-5-10-minute-demo/" >10 Minute Demo</a></li><li>H. L. Ship's <a shape="rect" class="external-link" href="https://www.youtube.com/watch?v=5BGt7eMFC20" >Tapestry 5.4 - Bootstrap-enhanced Exception Reporting</a></li><li><a shape="rect" class="external-link" href="http://jazoon.com/Portals/0/Content/slides/th_a7_1130-1220_drobiazko.pdf" >JavaServer Faces 2.0 vs. Tapestry 5</a> (PDF) A Head-to-Head Comparison by Igor Drobiazko at Jazoon 2010</li><li><a shape="rect" class="external-link" href="http://www.p
 arleys.com/#st=5&amp;sl=5&amp;id=1700" >Tapestry 5: Java power, Scripting Ease</a> (VIDEO) by Howard Lewis Ship at Devoxx 2009</li></ul><p><a shape="rect" href="presentations.html">More presentations</a> ...</p><h1 id="Documentation-TapestryWikis">Tapestry Wikis</h1><ul><li><a shape="rect" class="external-link" href="http://wiki.apache.org/tapestry/FrontPage">Tapestry Community Wiki</a> (Moin Moin) contains a lot of user-generated information on different Tapestry use cases.</li><li><a shape="rect" href="https://cwiki.apache.org/confluence/x/VCFkAQ">Documentation Source wiki</a> (Confluence) &#8211; the wiki used as the content editor for the official Tapestry documentation</li></ul><h1 id="Documentation-Gettinghelp">Getting help</h1><p>The primary method of support is the <a shape="rect" href="mailing-lists.html">Tapestry Mailing Lists</a>.</p><p>In addition, there are occasionally questions and answers about Tapestry at <a shape="rect" class="external-link" href="http://stackoverf
 low.com/questions/tagged/tapestry" >Stack Overflow</a>.</p><h1 id="Documentation-TheDeveloperCorner">The Developer Corner</h1><p><a shape="rect" href="developer-information.html">Developer Information</a> gives information needed by the Tapestry developers</p><p>&#160;</p></div>
+<div id="ConfluenceContent"><div style="float:right;margin-left:1em"><h2 id="Documentation-AllTopics">All Topics</h2><ul class="childpages-macro"><li><a shape="rect" href="introduction.html">Introduction</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="principles.html">Principles</a></li><li><a shape="rect" href="tapestry-tutorial.html">Tapestry Tutorial</a><ul class="childpages-macro"><li><a shape="rect" href="dependencies-tools-and-plugins.html">Dependencies, Tools and Plugins</a></li><li><a shape="rect" href="creating-the-skeleton-application.html">Creating The Skeleton Application</a></li><li><a shape="rect" href="exploring-the-project.html">Exploring the Project</a></li><li><a shape="rect" href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo Guessing Game</a></li><li><a shape="rect" href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To Create User Forms</a></li><li><a shape="rect" hr
 ef="using-tapestry-with-hibernate.html">Using Tapestry With Hibernate</a></li></ul></li><li><a shape="rect" href="user-guide.html">User Guide</a><ul class="childpages-macro"><li><a shape="rect" href="project-layout.html">Project Layout</a></li><li><a shape="rect" href="configuration.html">Configuration</a></li><li><a shape="rect" href="runtime-exceptions.html">Runtime Exceptions</a></li><li><a shape="rect" href="class-reloading.html">Class Reloading</a></li><li><a shape="rect" href="component-reference.html">Component Reference</a></li><li><a shape="rect" href="annotations.html">Annotations</a></li><li><a shape="rect" href="component-classes.html">Component Classes</a></li><li><a shape="rect" href="component-templates.html">Component Templates</a></li><li><a shape="rect" href="property-expressions.html">Property Expressions</a></li><li><a shape="rect" href="component-parameters.html">Component Parameters</a></li><li><a shape="rect" href="parameter-type-coercion.html">Parameter Type 
 Coercion</a></li><li><a shape="rect" href="layout-component.html">Layout Component</a></li><li><a shape="rect" href="component-mixins.html">Component Mixins</a><ul class="childpages-macro"><li><a shape="rect" href="built-in-mixins.html">Built-in Mixins</a></li></ul></li><li><a shape="rect" href="page-navigation.html">Page Navigation</a></li><li><a shape="rect" href="localization.html">Localization</a></li><li><a shape="rect" href="page-life-cycle.html">Page Life Cycle</a></li><li><a shape="rect" href="request-processing.html">Request Processing</a></li><li><a shape="rect" href="component-rendering.html">Component Rendering</a></li><li><a shape="rect" href="component-events.html">Component Events</a></li><li><a shape="rect" href="url-rewriting.html">URL rewriting</a></li><li><a shape="rect" href="dom.html">DOM</a></li><li><a shape="rect" href="response-compression.html">Response Compression</a></li><li><a shape="rect" href="security.html">Security</a></li><li><a shape="rect" href="ht
 tps.html">HTTPS</a></li><li><a shape="rect" href="content-type-and-markup.html">Content Type and Markup</a></li><li><a shape="rect" href="persistent-page-data.html">Persistent Page Data</a></li><li><a shape="rect" href="session-storage.html">Session Storage</a><ul class="childpages-macro"><li><a shape="rect" href="clustering-issues.html">Clustering Issues</a></li></ul></li><li><a shape="rect" href="injection.html">Injection</a></li><li><a shape="rect" href="environmental-services.html">Environmental Services</a></li><li><a shape="rect" href="css.html">CSS</a></li><li><a shape="rect" href="assets.html">Assets</a></li><li><a shape="rect" href="forms-and-validation.html">Forms and Validation</a></li><li><a shape="rect" href="beaneditform-guide.html">BeanEditForm Guide</a></li><li><a shape="rect" href="uploading-files.html">Uploading Files</a></li><li><a shape="rect" href="logging.html">Logging</a></li><li><a shape="rect" href="unit-testing-pages-or-components.html">Unit testing pages o
 r components</a></li><li><a shape="rect" href="integration-testing.html">Integration Testing</a></li><li><a shape="rect" href="development-dashboard.html">Development Dashboard</a></li><li><a shape="rect" href="modules.html">Modules</a><ul class="childpages-macro"><li><a shape="rect" href="built-in-modules.html">Built In Modules</a></li><li><a shape="rect" href="third-party-modules.html">Third Party Modules</a></li></ul></li><li><a shape="rect" href="ioc.html">IOC</a><ul class="childpages-macro"><li><a shape="rect" href="tapestry-ioc-overview.html">Tapestry IoC Overview</a></li><li><a shape="rect" href="tapestry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a shape="rect" href="defining-tapestry-ioc-services.html">Defining Tapestry IOC Services</a></li><li><a shape="rect" href="service-advisors.html">Service Advisors</a></li><li><a shape="rect" href="tapestry-ioc-decorators.html">Tapestry IoC Decorators</a></li><li><a shape="rect" href="tapestry-ioc-configuration.html">Tapestr
 y IoC Configuration</a></li><li><a shape="rect" href="case-insensitivity.html">Case Insensitivity</a></li><li><a shape="rect" href="autoloading-modules.html">Autoloading Modules</a></li><li><a shape="rect" href="service-implementation-reloading.html">Service Implementation Reloading</a></li><li><a shape="rect" href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a shape="rect" href="symbols.html">Symbols</a></li><li><a shape="rect" href="chainbuilder-service.html">ChainBuilder Service</a></li><li><a shape="rect" href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a shape="rect" href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a shape="rect" href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><a shape="rect" href="injection-in-detail.html">Injection in Detail</a></li><li><a shape="rect" href="object-providers.html">Object Providers</a></li><li><a shape="rect" href="service-serialization.html">Service Ser
 ialization</a></li><li><a shape="rect" href="type-coercion.html">Type Coercion</a></li><li><a shape="rect" href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a shape="rect" href="registry-startup.html">Registry Startup</a></li><li><a shape="rect" href="parallel-execution.html">Parallel Execution</a></li><li><a shape="rect" href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a shape="rect" href="using-jsr-330-standard-annotations.html">Using JSR 330 standard annotations</a></li><li><a shape="rect" href="operation-tracker.html">Operation Tracker</a></li></ul></li><li><a shape="rect" href="hibernate-core.html">Hibernate - Core</a><ul class="childpages-macro"><li><a shape="rect" href="hibernate-core-conf.html">Hibernate - Core - Conf</a></li><li><a shape="rect" href="hibernate.html">Hibernate</a></li></ul></li><li><a shape="rect" href="integrating-with-spring-framework.html">Integrating with Spring Framework</a></li><li><a shape="rect" href="bean-v
 alidation.html">Bean Validation</a></li><li><a shape="rect" href="component-report.html">Component Report</a></li><li><a shape="rect" href="aliases.html">Aliases</a></li><li><a shape="rect" href="integrating-with-jpa.html">Integrating with JPA</a></li><li><a shape="rect" href="client-side-javascript.html">Client-Side JavaScript</a><ul class="childpages-macro"><li><a shape="rect" href="javascript-modules.html">JavaScript Modules</a></li><li><a shape="rect" href="coffeescript.html">CoffeeScript</a></li><li><a shape="rect" href="legacy-javascript.html">Legacy JavaScript</a></li><li><a shape="rect" href="ajax-and-zones.html">Ajax and Zones</a></li></ul></li></ul></li><li><a shape="rect" href="cheat-sheets.html">Cheat Sheets</a><ul class="childpages-macro"><li><a shape="rect" href="application-module-class-cheat-sheet.html">Application Module Class Cheat Sheet</a></li><li><a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a></li><li><a shape="rect" href="tapestry-fo
 r-jsf-users.html">Tapestry for JSF Users</a></li></ul></li><li><a shape="rect" href="cookbook.html">Cookbook</a><ul class="childpages-macro"><li><a shape="rect" href="default-parameter.html">Default Parameter</a></li><li><a shape="rect" href="overriding-exception-reporting.html">Overriding Exception Reporting</a></li><li><a shape="rect" href="error-page-recipe.html">Error Page Recipe</a></li><li><a shape="rect" href="supporting-informal-parameters.html">Supporting Informal Parameters</a></li><li><a shape="rect" href="component-libraries.html">Component Libraries</a></li><li><a shape="rect" href="switching-cases.html">Switching Cases</a></li><li><a shape="rect" href="enum-parameter-recipe.html">Enum Parameter Recipe</a></li><li><a shape="rect" href="extending-the-if-component.html">Extending the If Component</a></li><li><a shape="rect" href="meta-programming-page-content.html">Meta-Programming Page Content</a></li><li><a shape="rect" href="using-select-with-a-list.html">Using Select 
 With a List</a></li><li><a shape="rect" href="ioc-cookbook.html">IoC cookbook</a><ul class="childpages-macro"><li><a shape="rect" href="ioc-cookbook-basic-services-and-injection.html">IoC Cookbook - Basic Services and Injection</a></li><li><a shape="rect" href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC Services</a></li><li><a shape="rect" href="ioc-cookbook-patterns.html">IoC Cookbook - Patterns</a></li><li><a shape="rect" href="ioc-cookbook-service-configurations.html">IoC cookbook - Service Configurations</a></li></ul></li><li><a shape="rect" href="performance-and-clustering.html">Performance and Clustering</a></li></ul></li><li><a shape="rect" href="frequently-asked-questions.html">Frequently Asked Questions</a><ul class="childpages-macro"><li><a shape="rect" href="general-questions.html">General Questions</a></li><li><a shape="rect" href="templating-and-markup-faq.html">Templating and Markup FAQ</a></li><li><a shape="rect" href="page-and-component-
 classes-faq.html">Page And Component Classes FAQ</a></li><li><a shape="rect" href="forms-and-form-components-faq.html">Forms and Form Components FAQ</a></li><li><a shape="rect" href="beaneditform-faq.html">BeanEditForm FAQ</a></li><li><a shape="rect" href="link-components-faq.html">Link Components FAQ</a></li><li><a shape="rect" href="component-events-faq.html">Component Events FAQ</a></li><li><a shape="rect" href="javascript-faq.html">JavaScript FAQ</a></li><li><a shape="rect" href="ajax-components-faq.html">Ajax Components FAQ</a></li><li><a shape="rect" href="injection-faq.html">Injection FAQ</a></li><li><a shape="rect" href="tapestry-inversion-of-control-faq.html">Tapestry Inversion of Control FAQ</a></li><li><a shape="rect" href="security-faq.html">Security FAQ</a></li><li><a shape="rect" href="integration-with-existing-applications.html">Integration with existing applications</a></li><li><a shape="rect" href="request-processing-faq.html">Request Processing FAQ</a></li><li><a s
 hape="rect" href="limitations.html">Limitations</a></li><li><a shape="rect" href="specific-errors-faq.html">Specific Errors FAQ</a></li><li><a shape="rect" href="hibernate-support-faq.html">Hibernate Support FAQ</a></li><li><a shape="rect" href="maven-support-faq.html">Maven Support FAQ</a></li><li><a shape="rect" href="release-upgrade-faq.html">Release Upgrade FAQ</a></li></ul></li><li><a shape="rect" href="release-notes.html">Release Notes</a><ul class="childpages-macro"><li><a shape="rect" href="how-to-upgrade.html">How to Upgrade</a></li><li><a shape="rect" href="release-notes-50.html">Release Notes 5.0</a></li><li><a shape="rect" href="release-notes-51.html">Release Notes 5.1</a></li><li><a shape="rect" href="release-notes-52.html">Release Notes 5.2</a><ul class="childpages-macro"><li><a shape="rect" href="release-notes-520.html">Release Notes 5.2.0</a></li><li><a shape="rect" href="release-notes-521.html">Release Notes 5.2.1</a></li><li><a shape="rect" href="release-notes-522.
 html">Release Notes 5.2.2</a></li><li><a shape="rect" href="release-notes-523.html">Release Notes 5.2.3</a></li><li><a shape="rect" href="release-notes-524.html">Release Notes 5.2.4</a></li><li><a shape="rect" href="release-notes-525.html">Release Notes 5.2.5</a></li><li><a shape="rect" href="release-notes-526.html">Release Notes 5.2.6</a></li></ul></li><li><a shape="rect" href="release-notes-53.html">Release Notes 5.3</a></li><li><a shape="rect" href="release-notes-531.html">Release Notes 5.3.1</a></li><li><a shape="rect" href="release-notes-532.html">Release Notes 5.3.2</a></li><li><a shape="rect" href="release-notes-533.html">Release Notes 5.3.3</a></li><li><a shape="rect" href="release-notes-534.html">Release Notes 5.3.4</a></li><li><a shape="rect" href="release-notes-535.html">Release Notes 5.3.5</a></li><li><a shape="rect" href="release-notes-536.html">Release Notes 5.3.6</a></li><li><a shape="rect" href="release-notes-537.html">Release Notes 5.3.7</a></li><li><a shape="rect" 
 href="release-notes-54.html">Release Notes 5.4</a></li><li><a shape="rect" href="release-notes-538.html">Release notes 5.3.8</a></li></ul></li><li><a shape="rect" href="javascript-rewrite-in-54.html">JavaScript Rewrite in 5.4</a></li><li><a shape="rect" href="support.html">Support</a></li><li><a shape="rect" href="developer-information.html">Developer Information</a><ul class="childpages-macro"><li><a shape="rect" href="building-tapestry-from-source.html">Building Tapestry from Source</a></li><li><a shape="rect" href="confluence-site-setup.html">Confluence Site Setup</a><ul class="childpages-macro"><li><a shape="rect" href="since-and-deprecated-user-macros.html">Since and Deprecated User Macros</a></li></ul></li><li><a shape="rect" href="developer-bible.html">Developer Bible</a></li><li><a shape="rect" href="release-process.html">Release Process</a></li><li><a shape="rect" href="the-tapestry-jail.html">The tapestry jail</a></li><li><a shape="rect" href="version-numbers.html">Version
  Numbers</a></li></ul></li></ul></div><p>Welcome to the Tapestry 5 Documentation. A rich collection of guides is available to teach beginners the basics and help even experienced developers deepen their understanding of Tapestry's power. <em>Code less, deliver more!</em></p><h1 id="Documentation-Highlights">Highlights</h1><p>These are the most useful starting points for common needs.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="introduction.html">Introduction</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An overview of Tapestry's general approach and philosophy</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="getting-started.html">Getting Started</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick guide to creating your first Tapestry project, using Maven</p></td></tr><tr><td colspan="1" rowspan="1" class="c
 onfluenceTd"><p><a shape="rect" href="tapestry-tutorial.html">Tapestry Tutorial</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Picks up where <em>Getting Started</em> leaves off, explaining in greater detail how Tapestry works</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="user-guide.html">User Guide</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Detailed articles on every Tapestry feature</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="community.html">Community</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Getting support, mailing lists, JIRA, outside resources, and access to the source</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="cookbook.html">Cookbook</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Guides to doing common things with Tapestry</p></td></tr><tr><td colspan="1" rowspan
 ="1" class="confluenceTd"><p><strong><a shape="rect" href="frequently-asked-questions.html">FAQ</a></strong></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick place to check for common problems and solutions</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A concise guide to component classes, methods and annotations</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://refcardz.dzone.com/refcardz/apache-tapestry-50?oid=hom7948" >Refcard</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A color, six page foldout guide to Tapestry 5.0 (PDF)</p></td></tr></tbody></table></div><h1 id="Documentation-APIandComponentReference">API and Component Reference</h1><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
 rowspan="1" class="confluenceTh"><p>API (Javadoc):</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.1<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/">5.3.7 (current)</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><a shape="rect" class="external-link" href="http://tapestry.apache.org/5.4/">5.4 (beta)</a></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Component Reference:</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.1<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="comp
 onent-reference.html">5.3.7 (current)</a></p></td><td colspan="1" rowspan="1" class="confluenceTd">same as current</td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Release Notes:</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="release-notes-50.html">5.0</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="release-notes-51.html">5.1</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="release-notes-52.html">5.2</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="release-notes.html">5.3.7 (current)</a></p></td><td colspan="1" rowspan="1" class="confluenceTd">not yet available</td></tr></tbody></table></div><p><sup>1</sup> needs to be built manually from archived sources at <a shape="rect" class="external-link" href="http://archive.apache.org/dist/tapestry/">http://archive.apache.org/dist/tapestry/</a>.</p><h1 id="Documentation-UserGuide"
 >User Guide</h1><p><span class="confluence-anchor-link" id="Documentation-userguide"></span>The <a shape="rect" href="user-guide.html">User Guide</a> consists of over 75 pages of detailed information on the concepts behind Tapestry and instructions on how to use this powerful tool. Highlights include:</p><ul><li><a shape="rect" href="legacy-javascript.html">Legacy JavaScript</a> and <a shape="rect" href="ajax-and-zones.html">Ajax and Zones</a> describe Tapestry's built-in support for dynamic in-page behavior.</li><li><a shape="rect" href="integrating-with-spring-framework.html">Integrating with Spring Framework</a> describes how to integrate Spring into your Tapestry application.</li><li><a shape="rect" href="hibernate.html">Tapestry/Hibernate Integration Library</a> provides out-of-the-box support for using Hibernate 3.</li><li><a shape="rect" href="bean-validation.html">JSR 303: Bean Validation</a> shows how to use standard annotations for validation</li><li><a shape="rect" href="
 integration-testing.html">Integration Testing</a> shows how to test your application with Selenium.</li></ul><p><a shape="rect" href="user-guide.html">More topics</a>...</p><h1 id="Documentation-BlogsbyTapestryDevelopersandtheCommunity">Blogs by Tapestry Developers and the Community</h1><ul><li><a shape="rect" class="external-link" href="http://tapestryjava.blogspot.com/" >Tapestry Central</a> is Howard Lewis Ship's blog. As the creator of Tapestry, he provides valuable insights into Tapestry's latest features and future directions.</li><li><a shape="rect" class="external-link" href="http://blog.tapestry5.de/" >Igor Drobiazko's blog</a> (committer &amp; PMC) contains news on Tapestry development and will guide you through some of the most exciting parts of Tapestry.</li><li><a shape="rect" class="external-link" href="http://tawus.wordpress.com/" >Java Magic</a> (by Taha Hafeez, committer) has a series of tutorials illustrating some of the more advanced Tapestry and Plastic features 
 and techniques.</li><li><a shape="rect" class="external-link" href="http://blog.andyhot.gr/tag/tapestry/" >Andreas Andreou's blog</a> (committer &amp; PMC) has news and commentary on Tapestry.</li><li><a shape="rect" class="external-link" href="http://spreadthesource.com/" >Spread the Source blog</a> (Christophe Cordenier and Robin Komiwes) has news and advanced tutorials on Tapestry 5.</li></ul><h1 id="Documentation-BooksonTapestry">Books on Tapestry</h1><p>There are at least 8 published <a shape="rect" href="books.html">books on Tapestry</a>, including two on Tapestry 5 &#8212; and more on the way.</p><h1 id="Documentation-ArticlesonTapestry">Articles on Tapestry</h1><ul><li>This <a shape="rect" class="external-link" href="http://www.laliluna.de/articles/the-web-framework-evaluation.html" >eBook</a> published in 2009 contains a <a shape="rect" class="external-link" href="http://www.laliluna.de/articles/2009/08/14/tapestry-web-framework-evaluation-and-test.html" >good introduction 
 and analysis of Tapestry 5</a></li></ul><ul><li><a shape="rect" class="external-link" href="http://www.infoq.com/articles/tapestry5-intro" >Tapestry 5 for Nonbelievers</a> will convince the skeptical why Tapestry is the best web framework.</li></ul><p><a shape="rect" href="articles.html">More articles</a>...</p><h1 id="Documentation-TapestryPresentations">Tapestry Presentations</h1><ul><li>Mark W. Shead's <a shape="rect" class="external-link" href="http://blog.markwshead.com/900/tapestry-5-10-minute-demo/" >10 Minute Demo</a></li><li>H. L. Ship's <a shape="rect" class="external-link" href="https://www.youtube.com/watch?v=5BGt7eMFC20" >Tapestry 5.4 - Bootstrap-enhanced Exception Reporting</a></li><li><a shape="rect" class="external-link" href="http://jazoon.com/Portals/0/Content/slides/th_a7_1130-1220_drobiazko.pdf" >JavaServer Faces 2.0 vs. Tapestry 5</a> (PDF) A Head-to-Head Comparison by Igor Drobiazko at Jazoon 2010</li><li><a shape="rect" class="external-link" href="http://www.p
 arleys.com/#st=5&amp;sl=5&amp;id=1700" >Tapestry 5: Java power, Scripting Ease</a> (VIDEO) by Howard Lewis Ship at Devoxx 2009</li></ul><p><a shape="rect" href="presentations.html">More presentations</a> ...</p><h1 id="Documentation-TapestryWikis">Tapestry Wikis</h1><ul><li><a shape="rect" class="external-link" href="http://wiki.apache.org/tapestry/FrontPage">Tapestry Community Wiki</a> (Moin Moin) contains a lot of user-generated information on different Tapestry use cases.</li><li><a shape="rect" href="https://cwiki.apache.org/confluence/x/VCFkAQ">Documentation Source wiki</a> (Confluence) &#8211; the wiki used as the content editor for the official Tapestry documentation</li></ul><h1 id="Documentation-Gettinghelp">Getting help</h1><p>The primary method of support is the <a shape="rect" href="mailing-lists.html">Tapestry Mailing Lists</a>.</p><p>In addition, there are occasionally questions and answers about Tapestry at <a shape="rect" class="external-link" href="http://stackoverf
 low.com/questions/tagged/tapestry" >Stack Overflow</a>.</p><h1 id="Documentation-TheDeveloperCorner">The Developer Corner</h1><p><a shape="rect" href="developer-information.html">Developer Information</a> gives information needed by the Tapestry developers</p><p>&#160;</p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/enum-parameter-recipe.html
==============================================================================
--- websites/production/tapestry/content/enum-parameter-recipe.html (original)
+++ websites/production/tapestry/content/enum-parameter-recipe.html Sun Nov  8 17:21:51 2015
@@ -67,7 +67,30 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent">
+<div id="ConfluenceContent">    
+<div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a shape="rect" href="switching-cases.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Switching Cases</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a shape="rect" href="cookbook.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Cookbook</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a shape="rect" href="extending-the-if-component.html" rel="next">
+                <span class="title">Extending the If Component</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div>
 <p></p>
 
 <h1 id="EnumParameterRecipe-EnumComponentParameter">Enum Component Parameter</h1>

Modified: websites/production/tapestry/content/error-page-recipe.html
==============================================================================
--- websites/production/tapestry/content/error-page-recipe.html (original)
+++ websites/production/tapestry/content/error-page-recipe.html Sun Nov  8 17:21:51 2015
@@ -67,7 +67,30 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><h1 id="ErrorPageRecipe-ServingTapestryPagesasServletErrorPages">Serving Tapestry Pages as Servlet Error Pages</h1><p>Do you want to dress up your site and use a snazzy Tapestry page instead of the default 404 error page? Using modern servlet containers, this is a snap!</p><div class="aui-label" style="float:right" title="Related Articles">
+<div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a shape="rect" href="overriding-exception-reporting.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Overriding Exception Reporting</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a shape="rect" href="cookbook.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Cookbook</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a shape="rect" href="supporting-informal-parameters.html" rel="next">
+                <span class="title">Supporting Informal Parameters</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="ErrorPageRecipe-ServingTapestryPagesasServletErrorPages">Serving Tapestry Pages as Servlet Error Pages</h1><p>Do you want to dress up your site and use a snazzy Tapestry page instead of the default 404 error page? Using modern servlet containers, this is a snap!</p><div class="aui-label" style="float:right" title="Related Articles">
 
 
 

Modified: websites/production/tapestry/content/exploring-the-project.html
==============================================================================
--- websites/production/tapestry/content/exploring-the-project.html (original)
+++ websites/production/tapestry/content/exploring-the-project.html Sun Nov  8 17:21:51 2015
@@ -233,13 +233,13 @@ public class Index
 
 
 
-<span class="gliffy-container" id="gliffy-container-24346949-7589" data-fullwidth="913" data-ceoid="24188263" data-edit="${diagramEditLink.getLinkUrl()}" data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Templates and Parameters">
+<span class="gliffy-container" id="gliffy-container-24346949-516" data-fullwidth="913" data-ceoid="24188263" data-edit="${diagramEditLink.getLinkUrl()}" data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Templates and Parameters">
 
-    <map id="gliffy-map-24346949-8786" name="gliffy-map-24346949-8786"></map>
+    <map id="gliffy-map-24346949-6905" name="gliffy-map-24346949-6905"></map>
 
-    <img class="gliffy-image gliffy-image-border" id="gliffy-image-24346949-7589" width="304" height="300" data-full-width="913" data-full-height="901" src="https://cwiki.apache.org/confluence/download/attachments/24188263/Templates%20and%20Parameters.png?version=2&amp;modificationDate=1371888025000&amp;api=v2" alt="Templates and Parameters" usemap="#gliffy-map-24346949-8786">
+    <img class="gliffy-image gliffy-image-border" id="gliffy-image-24346949-516" width="304" height="300" data-full-width="913" data-full-height="901" src="https://cwiki.apache.org/confluence/download/attachments/24188263/Templates%20and%20Parameters.png?version=2&amp;modificationDate=1371888025000&amp;api=v2" alt="Templates and Parameters" usemap="#gliffy-map-24346949-6905">
 
-    <map class="gliffy-dynamic" id="gliffy-dynamic-map-24346949-7589" name="gliffy-dynamic-map-24346949-7589"></map>
+    <map class="gliffy-dynamic" id="gliffy-dynamic-map-24346949-516" name="gliffy-dynamic-map-24346949-516"></map>
 </span>
 
 

Modified: websites/production/tapestry/content/extending-the-if-component.html
==============================================================================
--- websites/production/tapestry/content/extending-the-if-component.html (original)
+++ websites/production/tapestry/content/extending-the-if-component.html Sun Nov  8 17:21:51 2015
@@ -67,7 +67,30 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><h1 id="ExtendingtheIfComponent-ExtendingtheIfComponent">Extending the If Component</h1><p>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/If.html">If</a> component can be made very flexible; its main parameter, <code>test</code>, does not <em>have</em> to be bound to a boolean value, it merely has to be bound to a value that can be <a shape="rect" href="type-coercion.html">coerced</a> to boolean.</p><p>For example, you may be working on an application that does a lot of <a shape="rect" class="external-link" href="http://lucene.apache.org/java/docs/index.html">Lucene</a> searches, and you represent the results as a SearchResult object:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>SearchResult.java</b></div><div class="codeContent panelContent pdl">
+<div id="ConfluenceContent">    
+<div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a shape="rect" href="enum-parameter-recipe.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Enum Parameter Recipe</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a shape="rect" href="cookbook.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Cookbook</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a shape="rect" href="meta-programming-page-content.html" rel="next">
+                <span class="title">Meta-Programming Page Content</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="ExtendingtheIfComponent-ExtendingtheIfComponent">Extending the If Component</h1><p>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/If.html">If</a> component can be made very flexible; its main parameter, <code>test</code>, does not <em>have</em> to be bound to a boolean value, it merely has to be bound to a value that can be <a shape="rect" href="type-coercion.html">coerced</a> to boolean.</p><p>For example, you may be working on an application that does a lot of <a shape="rect" class="external-link" href="http://lucene.apache.org/java/docs/index.html">Lucene</a> searches, and you represent the results as a SearchResult object:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>SearchResult.java</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">public class SearchResult&lt;T&gt; {
   public final Class&lt;T&gt; itemType;
   public final List&lt;T&gt; items;

Modified: websites/production/tapestry/content/forms-and-form-components-faq.html
==============================================================================
--- websites/production/tapestry/content/forms-and-form-components-faq.html (original)
+++ websites/production/tapestry/content/forms-and-form-components-faq.html Sun Nov  8 17:21:51 2015
@@ -67,7 +67,30 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><h2 id="FormsandFormComponentsFAQ-FormsandFormComponents">Forms and Form Components</h2><p>Main article: <a shape="rect" href="forms-and-validation.html">Forms and Validation</a></p><h3 id="FormsandFormComponentsFAQ-Whatisthet:formdatahiddenfieldfor?">What is the <code>t:formdata</code> hidden field for?</h3><p>In Tapestry, rendering a form can be a complicated process; inside the body of the Form component are many of field components: TextField, Select, TextArea, and so forth. Each of these must pull data out of your data model and convert it to the string form used inside the client web browser. In addition, JavaScript to support client-side validation must be generated. This can be further complicated by the use of Loop and If components, or made really complicated by the use of Block (to render portions of other pages: this is what the BeanEditForm component does).</p><p>Along the way, the Form is generating unique form control names for each field c
 omponent, as it renders.</p><p>When the client-side Form is submitted, an event is triggered on the server-side Form component. It now needs to locate each component, in turn, inform the component of its control name, and allow the component to read the corresponding query parameter. The component then converts the client-side string back into a server-side value and performs validations before updating the data model.</p><p>That's where <code>t:formdata</code> comes in. While components are rendering, they are using the FormSupport environmental object to record callbacks:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>FormSupport.java (partial)</b></div><div class="codeContent panelContent pdl">
+<div id="ConfluenceContent">    
+<div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a shape="rect" href="page-and-component-classes-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Page And Component Classes FAQ</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a shape="rect" href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a shape="rect" href="beaneditform-faq.html" rel="next">
+                <span class="title">BeanEditForm FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h2 id="FormsandFormComponentsFAQ-FormsandFormComponents">Forms and Form Components</h2><p>Main article: <a shape="rect" href="forms-and-validation.html">Forms and Validation</a></p><h3 id="FormsandFormComponentsFAQ-Whatisthet:formdatahiddenfieldfor?">What is the <code>t:formdata</code> hidden field for?</h3><p>In Tapestry, rendering a form can be a complicated process; inside the body of the Form component are many of field components: TextField, Select, TextArea, and so forth. Each of these must pull data out of your data model and convert it to the string form used inside the client web browser. In addition, JavaScript to support client-side validation must be generated. This can be further complicated by the use of Loop and If components, or made really complicated by the use of Block (to render portions of other pages: this is what the BeanEditForm component does).</p><p>Along the way, the Form is generating unique form control names for each field component, as it render
 s.</p><p>When the client-side Form is submitted, an event is triggered on the server-side Form component. It now needs to locate each component, in turn, inform the component of its control name, and allow the component to read the corresponding query parameter. The component then converts the client-side string back into a server-side value and performs validations before updating the data model.</p><p>That's where <code>t:formdata</code> comes in. While components are rendering, they are using the FormSupport environmental object to record callbacks:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>FormSupport.java (partial)</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: true; theme: Default" style="font-size:12px;">public interface FormSupport extends ClientElement
 {
     /**
@@ -103,7 +126,30 @@
 </div></div><p>The "prop:" prefix identifies that "usernameLabel" is to be interpreted as a property expression (normally, the binding for the <code>label</code> parameter is interpreted as a string literal). The Label component gets the text it displays from the TextField component, and the TextField component uses the same text when generating server-side and client-side validation messages.</p><h3 id="FormsandFormComponentsFAQ-Tapestryfocusesonthewrongfieldinmyform,howdoIfixthat?">Tapestry focuses on the wrong field in my form, how do I fix that?</h3><p>Tapestry normally figures out the correct field in your form to initially receive focus; this is based on assigning a <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/FieldFocusPriority.html">FieldFocusPriority</a> to each field as it renders, which works out to the following logic:</p><ul><li>The first field which has an error</li><li>Or, the first field which is required
 </li><li>Or, the first field</li></ul><p>Occasionally, due a wide range of factors beyond Tapestry's control, it's selection will not be quite what you want, and it is necessary to supply an override. The information is tracked inside the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html">JavaScriptSupport</a> environmental. It's just a matter of injecting the component so that you can determine its client id, then informing JavaScriptSupport about your override.</p><p>Here's an example</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">  &lt;t:textfield t:id="email" t:mixins="OverrideFieldFocus" .../&gt;
 </pre>
-</div></div><p>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.html">OverrideFieldFocus</a> mixin forces the email field to be the focus field, regardless.</p></div>
+</div></div><p>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.html">OverrideFieldFocus</a> mixin forces the email field to be the focus field, regardless.</p>    
+<div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a shape="rect" href="page-and-component-classes-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Page And Component Classes FAQ</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a shape="rect" href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a shape="rect" href="beaneditform-faq.html" rel="next">
+                <span class="title">BeanEditForm FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/forms-and-validation.html
==============================================================================
--- websites/production/tapestry/content/forms-and-validation.html (original)
+++ websites/production/tapestry/content/forms-and-validation.html Sun Nov  8 17:21:51 2015
@@ -107,11 +107,11 @@
                     </div>
     </li></ul>
 </div><p>&#160;</p><p>Tapestry provides support for creating and rendering forms, populating their fields, and validating user input. For simple cases, input validation is declarative, meaning you simply tell Tapestry what validations to apply to a given field, and it takes care of it on the server and (optionally) on the client as well. In addition, you can provide event handler methods&#160;in your page or component classes to handle more complex validation scenarios.</p><p>Finally, Tapestry not only makes it easy to present errors messages to the user, but it can also automatically highlight form fields when validation fails.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1438467572974 {padding: 0px;}
-div.rbtoc1438467572974 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1438467572974 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1447003263696 {padding: 0px;}
+div.rbtoc1447003263696 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1447003263696 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1438467572974">
+/*]]>*/</style></p><div class="toc-macro rbtoc1447003263696">
 <ul class="toc-indentation"><li>Related Articles</li></ul>
 <ul><li><a shape="rect" href="#FormsandValidation-TheFormComponent">The Form Component</a></li><li><a shape="rect" href="#FormsandValidation-FormEvents">Form Events</a></li><li><a shape="rect" href="#FormsandValidation-HandlingEvents">Handling Events</a></li><li><a shape="rect" href="#FormsandValidation-TrackingValidationErrors">Tracking Validation Errors</a></li><li><a shape="rect" href="#FormsandValidation-StoringDataBetweenRequests">Storing Data Between Requests</a></li><li><a shape="rect" href="#FormsandValidation-ConfiguringFieldsandLabels">Configuring Fields and Labels</a></li><li><a shape="rect" href="#FormsandValidation-CentralizingValidationwith@Validate">Centralizing Validation with @Validate</a></li><li><a shape="rect" href="#FormsandValidation-ServerSideValidation">Server Side Validation</a></li><li><a shape="rect" href="#FormsandValidation-CustomizingValidationMessages">Customizing Validation Messages</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#FormsandValidation-CustomizingValidationMessagesforBeanEditForm">Customizing Validation Messages for BeanEditForm</a></li></ul>

Modified: websites/production/tapestry/content/general-questions.html
==============================================================================
--- websites/production/tapestry/content/general-questions.html (original)
+++ websites/production/tapestry/content/general-questions.html Sun Nov  8 17:21:51 2015
@@ -67,16 +67,54 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><h2 id="GeneralQuestions-GeneralQuestions">General Questions</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1437340835672 {padding: 0px;}
-div.rbtoc1437340835672 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1437340835672 li {margin-left: 0px;padding-left: 0px;}
+<div id="ConfluenceContent">    
+<div class="atb-scrollbar-macro">
+    <div class="prev">
+        
+    </div>
+    <div class="parent">
+                    <a shape="rect" href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1437340835672">
+            </div>
+    <div class="next">
+        <a shape="rect" href="templating-and-markup-faq.html" rel="next">
+                <span class="title">Templating and Markup FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h2 id="GeneralQuestions-GeneralQuestions">General Questions</h2><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1447003246853 {padding: 0px;}
+div.rbtoc1447003246853 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1447003246853 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1447003246853">
 <ul class="toc-indentation"><li><a shape="rect" href="#GeneralQuestions-GeneralQuestions">General Questions</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#GeneralQuestions-HowdoIgetstartedwithTapestry?">How do I get started with Tapestry?</a></li><li><a shape="rect" href="#GeneralQuestions-WhydoesTapestryusePrototype?WhynotinsertfavoriteJavaScriptlibraryhere?">Why does Tapestry use Prototype? Why not insert favorite JavaScript library here?</a></li><li><a shape="rect" href="#GeneralQuestions-WhydoesTapestryhaveitsownInversionofControlContainer?WhynotSpringorGuice?">Why does Tapestry have its own Inversion of Control Container? Why not Spring or Guice?</a></li><li><a shape="rect" href="#GeneralQuestions-HowdoIupgradefromTapestry4toTapestry5?">How do I upgrade from Tapestry 4 to Tapestry 5?</a></li><li><a shape="rect" href="#GeneralQuestions-HowdoIupgradefromoneversionofTapestry5toanother?">How do I upgrade from one version of Tapestry 5 to another?</a></li></ul>
 </li></ul>
-</div><h3 id="GeneralQuestions-HowdoIgetstartedwithTapestry?">How do I get started with Tapestry?</h3><p>The easiest way to get started is to use <a shape="rect" class="external-link" href="http://maven.apache.org">Apache Maven</a> to create your initial project; Maven can use an <em>archetype</em> (a kind of project template) to create a bare-bones Tapestry application for you. See the <a shape="rect" href="getting-started.html">Getting Started</a> page for more details.</p><p>Even without Maven, Tapestry is quite easy to set up. You just need to <a shape="rect" href="download.html">download</a> the binaries and setup your build to place them inside your WAR's WEB-INF/lib folder. The rest is just some one-time <a shape="rect" href="configuration.html">configuration of the web.xml deployment descriptor</a>.</p><h3 id="GeneralQuestions-WhydoesTapestryusePrototype?WhynotinsertfavoriteJavaScriptlibraryhere?">Why does Tapestry use Prototype? Why not <em>insert favorite JavaScript librar
 y here</em>?</h3><p>An important goal for Tapestry is seamless DHTML and Ajax integration. To serve that goal, it was important that the built in components be capable of Ajax operations, such as dynamically re-rendering parts of the page. Because of that, it made sense to bundle a well-known JavaScript library as part of Tapestry.</p><p>At the time (this would be 2006-ish), Prototype and Scriptaculous were well known and well documented, and jQuery was just getting started.</p><p>The intent has always been to make this aspect of Tapestry pluggable. Tapestry 5.4 includes the option of either Prototype or jQuery Tapestry 5.5 will remove Prototype as an option..</p><h3 id="GeneralQuestions-WhydoesTapestryhaveitsownInversionofControlContainer?WhynotSpringorGuice?">Why does Tapestry have its own Inversion of Control Container? Why not Spring or Guice?</h3><p>An Inversion of Control Container is <em>the</em> key piece of Tapestry's infrastructure. It is absolutely necessary to create sof
 tware as robust, performant ,and extensible as Tapestry.</p><p>Tapestry IoC includes a number of features that distinguish itself from other containers:</p><ul><li>Configured in code, not XML</li><li>Built-in extension mechanism for services: configurations and contributions</li><li>Built-in aspect oriented programming model (service decorations and advice)</li><li>Easy modularization</li><li>Best-of-breed exception reporting</li></ul><p>Because Tapestry is implemented on top of its IoC container, and because the container makes it easy to extend or replace any service inside the container, it is possible to make the small changes to Tapestry needed to customize it to any project's needs.</p><h3 id="GeneralQuestions-HowdoIupgradefromTapestry4toTapestry5?">How do I upgrade from Tapestry 4 to Tapestry 5?</h3><p>There is no existing tool that supports upgrading from Tapestry 4 to Tapestry 5; Tapestry 5 is a complete rewrite.</p><p>Many of the basic concepts in Tapestry 4 are still pres
 ent in Tapestry 5, but refactored, improved, streamlined, and simplified. The basic concept of pages, templates and components are largely the same. Other aspects, such as server-side event handling, is markedly different.</p><h3 id="GeneralQuestions-HowdoIupgradefromoneversionofTapestry5toanother?">How do I upgrade from one version of Tapestry 5 to another?</h3><p>A lot of effort goes into making an upgrade from one Tapestry 5 release to another go smoothly. In the general case, it is just a matter of updating the version number in your Maven <code>build.xml</code> or Gradle <code>build.gradle</code> file and executing the appropriate commands (e.g., <code>gradle idea</code> or <code>mvn eclipse:eclipse</code>) to bring your local workspace up to date with the latest binaries.</p><p>After changing dependencies, you should always perform a clean recompile of your application.</p><p>We make every effort to ensure backwards-compatibility. Tapestry is mostly coded in terms of interface
 s; those interfaces are stable to a point: interfaces your code is expected to implement are usually completely frozen; interfaces your code is expected to invoke, such as the interfaces to IoC services, are stable, but may have new methods added in a release; existing methods are not changed.</p><p>In <em>rare</em> cases a choice is necessary between fixing bugs (or adding essential functionality) and maintaining complete backwards compatibility; in those cases, an incompatible change may be introduced. These are always discussed in detail in the <a shape="rect" href="release-notes.html">Release Notes</a> for the specific release. You should always read the release notes before attempting an upgrade, and always (really, <em>always</em>) be prepared to retest your application afterwards.</p><p>Note that you should be careful any time you make use of <strong>internal</strong> APIs (you can tell an API is internal by the package name, <code>org.apache.tapestry5.internal...</code>. Int
 ernal APIs may change <em>at any time</em>; there's no guarantee of backwards compatibility. Please always check on the documentation, or consult the user mailing list, to see if there's a stable, public alternative. If you do make use of internal APIs, be sure to get a discussion going so that your needs can be met in the future by a stable, public API.</p><p><span style="color: rgb(83,145,38);font-size: 16.0px;line-height: 1.5625;">Why are there both Request and HttpServletRequest?</span></p><p>Tapestry's Request interface is <em>very</em> close to the standard HttpServletRequest interface. It differs in a few ways, omitting some unneeded methods, and adding a couple of new methods (such as <code>isXHR()</code>), as well as changing how some existing methods operate. For example, <code>getParameterNames()</code> returns a sorted List of Strings; HttpServletRequest returns an Enumeration, which is a very dated approach.</p><p>However, the stronger reason for Request (and the relate
 d interfaces Response and Session) is to enable the support for Portlets at some point in the future. By writing code in terms of Tapestry's Request, and not HttpServletRequest, you can be assured that the same code will operate in both Servlet Tapestry and Portlet Tapestry.</p></div>
+</div><h3 id="GeneralQuestions-HowdoIgetstartedwithTapestry?">How do I get started with Tapestry?</h3><p>The easiest way to get started is to use <a shape="rect" class="external-link" href="http://maven.apache.org">Apache Maven</a> to create your initial project; Maven can use an <em>archetype</em> (a kind of project template) to create a bare-bones Tapestry application for you. See the <a shape="rect" href="getting-started.html">Getting Started</a> page for more details.</p><p>Even without Maven, Tapestry is quite easy to set up. You just need to <a shape="rect" href="download.html">download</a> the binaries and setup your build to place them inside your WAR's WEB-INF/lib folder. The rest is just some one-time <a shape="rect" href="configuration.html">configuration of the web.xml deployment descriptor</a>.</p><h3 id="GeneralQuestions-WhydoesTapestryusePrototype?WhynotinsertfavoriteJavaScriptlibraryhere?">Why does Tapestry use Prototype? Why not <em>insert favorite JavaScript librar
 y here</em>?</h3><p>An important goal for Tapestry is seamless DHTML and Ajax integration. To serve that goal, it was important that the built in components be capable of Ajax operations, such as dynamically re-rendering parts of the page. Because of that, it made sense to bundle a well-known JavaScript library as part of Tapestry.</p><p>At the time (this would be 2006-ish), Prototype and Scriptaculous were well known and well documented, and jQuery was just getting started.</p><p>The intent has always been to make this aspect of Tapestry pluggable. Tapestry 5.4 includes the option of either Prototype or jQuery Tapestry 5.5 will remove Prototype as an option..</p><h3 id="GeneralQuestions-WhydoesTapestryhaveitsownInversionofControlContainer?WhynotSpringorGuice?">Why does Tapestry have its own Inversion of Control Container? Why not Spring or Guice?</h3><p>An Inversion of Control Container is <em>the</em> key piece of Tapestry's infrastructure. It is absolutely necessary to create sof
 tware as robust, performant ,and extensible as Tapestry.</p><p>Tapestry IoC includes a number of features that distinguish itself from other containers:</p><ul><li>Configured in code, not XML</li><li>Built-in extension mechanism for services: configurations and contributions</li><li>Built-in aspect oriented programming model (service decorations and advice)</li><li>Easy modularization</li><li>Best-of-breed exception reporting</li></ul><p>Because Tapestry is implemented on top of its IoC container, and because the container makes it easy to extend or replace any service inside the container, it is possible to make the small changes to Tapestry needed to customize it to any project's needs.</p><h3 id="GeneralQuestions-HowdoIupgradefromTapestry4toTapestry5?">How do I upgrade from Tapestry 4 to Tapestry 5?</h3><p>There is no existing tool that supports upgrading from Tapestry 4 to Tapestry 5; Tapestry 5 is a complete rewrite.</p><p>Many of the basic concepts in Tapestry 4 are still pres
 ent in Tapestry 5, but refactored, improved, streamlined, and simplified. The basic concept of pages, templates and components are largely the same. Other aspects, such as server-side event handling, is markedly different.</p><h3 id="GeneralQuestions-HowdoIupgradefromoneversionofTapestry5toanother?">How do I upgrade from one version of Tapestry 5 to another?</h3><p>A lot of effort goes into making an upgrade from one Tapestry 5 release to another go smoothly. In the general case, it is just a matter of updating the version number in your Maven <code>build.xml</code> or Gradle <code>build.gradle</code> file and executing the appropriate commands (e.g., <code>gradle idea</code> or <code>mvn eclipse:eclipse</code>) to bring your local workspace up to date with the latest binaries.</p><p>After changing dependencies, you should always perform a clean recompile of your application.</p><p>We make every effort to ensure backwards-compatibility. Tapestry is mostly coded in terms of interface
 s; those interfaces are stable to a point: interfaces your code is expected to implement are usually completely frozen; interfaces your code is expected to invoke, such as the interfaces to IoC services, are stable, but may have new methods added in a release; existing methods are not changed.</p><p>In <em>rare</em> cases a choice is necessary between fixing bugs (or adding essential functionality) and maintaining complete backwards compatibility; in those cases, an incompatible change may be introduced. These are always discussed in detail in the <a shape="rect" href="release-notes.html">Release Notes</a> for the specific release. You should always read the release notes before attempting an upgrade, and always (really, <em>always</em>) be prepared to retest your application afterwards.</p><p>Note that you should be careful any time you make use of <strong>internal</strong> APIs (you can tell an API is internal by the package name, <code>org.apache.tapestry5.internal...</code>. Int
 ernal APIs may change <em>at any time</em>; there's no guarantee of backwards compatibility. Please always check on the documentation, or consult the user mailing list, to see if there's a stable, public alternative. If you do make use of internal APIs, be sure to get a discussion going so that your needs can be met in the future by a stable, public API.</p><p><span style="color: rgb(83,145,38);font-size: 16.0px;line-height: 1.5625;">Why are there both Request and HttpServletRequest?</span></p><p>Tapestry's Request interface is <em>very</em> close to the standard HttpServletRequest interface. It differs in a few ways, omitting some unneeded methods, and adding a couple of new methods (such as <code>isXHR()</code>), as well as changing how some existing methods operate. For example, <code>getParameterNames()</code> returns a sorted List of Strings; HttpServletRequest returns an Enumeration, which is a very dated approach.</p><p>However, the stronger reason for Request (and the relate
 d interfaces Response and Session) is to enable the support for Portlets at some point in the future. By writing code in terms of Tapestry's Request, and not HttpServletRequest, you can be assured that the same code will operate in both Servlet Tapestry and Portlet Tapestry.</p>    
+<div class="atb-scrollbar-macro">
+    <div class="prev">
+        
+    </div>
+    <div class="parent">
+                    <a shape="rect" href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a shape="rect" href="templating-and-markup-faq.html" rel="next">
+                <span class="title">Templating and Markup FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/hibernate-core-conf.html
==============================================================================
--- websites/production/tapestry/content/hibernate-core-conf.html (original)
+++ websites/production/tapestry/content/hibernate-core-conf.html Sun Nov  8 17:21:51 2015
@@ -126,7 +126,7 @@
                 <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a shape="rect" href="hibernate-core.html">Hibernate - Core</a>
+                        <a shape="rect" href="hibernate-core-conf.html">Hibernate - Core - Conf</a>
                 
                         
                     </div>
@@ -135,7 +135,7 @@
                 <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a shape="rect" href="hibernate-core-conf.html">Hibernate - Core - Conf</a>
+                        <a shape="rect" href="hibernate-core.html">Hibernate - Core</a>
                 
                         
                     </div>

Modified: websites/production/tapestry/content/hibernate-core.html
==============================================================================
--- websites/production/tapestry/content/hibernate-core.html (original)
+++ websites/production/tapestry/content/hibernate-core.html Sun Nov  8 17:21:51 2015
@@ -118,7 +118,7 @@
                 <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a shape="rect" href="hibernate-core.html">Hibernate - Core</a>
+                        <a shape="rect" href="hibernate-core-conf.html">Hibernate - Core - Conf</a>
                 
                         
                     </div>
@@ -127,7 +127,7 @@
                 <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a shape="rect" href="hibernate-core-conf.html">Hibernate - Core - Conf</a>
+                        <a shape="rect" href="hibernate-core.html">Hibernate - Core</a>
                 
                         
                     </div>