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>


Reply via email to