Added: websites/production/tapestry/content/development-roadmap.html
==============================================================================
--- websites/production/tapestry/content/development-roadmap.html (added)
+++ websites/production/tapestry/content/development-roadmap.html Thu Apr  4 
09:17:08 2024
@@ -0,0 +1,200 @@
+<!DOCTYPE html>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<html>
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <meta name="keywords" content="tapestry, apache, apache tapestry, framework, 
java, web, component, open source, application, dynamic, scalable, robust, 
servlet">
+  <meta name="description" content="Apache Tapestry is a open-source 
component-oriented framework for creating dynamic, robust, highly scalable web 
applications in Java. Tapestry complements and builds upon the standard Java 
Servlet API, and so it works in any servlet container or application server.">
+
+  <title>
+          Development Roadmap - Apache Tapestry
+      </title>
+
+  <link rel="apple-touch-icon-precomposed" sizes="144x144" 
href="/images/apache-tapestry-icon-144.png">
+  <link rel="apple-touch-icon-precomposed" sizes="114x114" 
href="/images/apache-tapestry-icon-114.png">
+  <link rel="apple-touch-icon-precomposed" sizes="72x72" 
href="/images/apache-tapestry-icon-72.png">
+  <link rel="apple-touch-icon-precomposed" 
href="/images/apache-tapestry-icon-57.png">
+  <link rel="shortcut icon" href="/images/apache-tapestry-icon-32.png">
+
+  <link rel="stylesheet" href="/resources/bootstrap/bootstrap.min.css">
+  <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css";>
+  <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/themes/prism.min.css";>
+  <link rel="stylesheet" href="/resources/fonts/fonts.css">
+  <link rel="stylesheet" href="/styles/main.css">
+
+  <script type="text/javascript">
+    if (window.location.protocol === 'http:' && window.location.hostname !== 
'localhost') {
+      window.location = window.location.href.replace('http://', 'https://');
+    }
+  </script>
+
+  <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"; 
integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
 crossorigin="anonymous" defer></script>
+  <script 
src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"; 
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
 crossorigin="anonymous" defer></script>
+  <script src="/resources/bootstrap/bootstrap.min.js" defer></script>
+  <script 
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js"; 
defer></script>
+       <script 
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js";
 defer></script>
+
+  <script type="text/javascript">
+    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new 
Date;
+    ga('create', 'UA-400821-1', 'auto');
+    ga('send', 'pageview');
+  </script>
+  <script async src="https://www.google-analytics.com/analytics.js";></script>
+</head>
+<body>
+  <!-- /// Navigation Start -->
+    <div id="navigation"><p><header>
+  <div class="container-fluid">
+    <div class="row">
+      <div class="col-12">
+        <nav class="navbar navbar-expand-xl navbar-light 
justify-content-between">
+          <a class="navbar-brand" href="/index.html">
+            <img src="/images/apache-tapestry-icon-dark.svg" width="60" 
alt="Apache Tapestry" title="Apache Tapestry">
+            <span>apache tapestry</span>
+          </a>
+          <button type="button" class="navbar-toggler" data-toggle="collapse" 
data-target="#navbarCollapse" aria-controls="navbarCollapse" 
aria-expanded="false" aria-label="Toggle navigation">
+            <span class="navbar-toggler-icon"></span>
+          </button>
+          <div class="collapse navbar-collapse" id="navbarCollapse">
+            <ul class="navbar-nav mx-auto"><li class="nav-item">
+                <a class="nav-link active" 
href="/getting-started.html">Getting Started</a>
+              </li><li class="nav-item">
+                <a class="nav-link active" 
href="/documentation.html">Documentation</a>
+              </li><li class="nav-item">
+                <a class="nav-link active" href="/download.html">Download</a>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="communityNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Community
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="communityNavbarDropdown">
+                  <a class="dropdown-item" href="/community.html">Mailing 
Lists</a>
+                  <a class="dropdown-item" 
href="https://stackoverflow.com/questions/tagged/tapestry";>StackOverflow</a>
+                  <a class="dropdown-item" href="/support.html">Support</a>
+                  <a class="dropdown-item" href="/community.html">Getting 
Involved</a>
+                  <a class="dropdown-item" 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=300026356";
 title="Edit this page (requires approval, just ask on the mailing list)">Edit 
this page</a>
+                  <div class="dropdown-divider"></div>
+                  <a class="dropdown-item" 
href="https://twitter.com/ApacheTapestry";>@ApacheTapestry</a>
+                  <a class="dropdown-item" 
href="https://twitter.com/hashtag/tapestry5";>#tapestry5</a>
+                </div>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="developmentNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Development
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
+                  <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
+                  <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Apache
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="apacheNavbarDropdown">
+                  <a class="dropdown-item" 
href="https://www.apache.org/";>About Apache</a>
+                  <a class="dropdown-item" 
href="https://apachecon.com/?ref=royale.apache.org";>Events</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/foundation/sponsorship.html";>Sponsorship</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/licenses/LICENSE-2.0";>License</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/security/";>Security</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/foundation/thanks.html";>Thanks!</a>
+                </div>
+              </li></ul>
+            <form enctype="application/x-www-form-urlencoded" method="get" 
class="form-inline" action="search.html">
+              <input type="search" class="form-control search-input" name="q" 
placeholder="Search docs, issues, wikis and blogs" aria-label="Search">
+              <button type="submit" class="d-none">Search</button>
+            </form>
+          </div>
+        </nav>
+      </div>
+    </div>
+  </div>
+</header></p></div>
+  <!-- /// Navigation End -->
+
+  <article>
+    <div class="container-fluid">
+      <div class="container pt-5">
+        <div class="row">
+          <div class="col-12">
+                          <!-- /// Breadcrumb Start -->
+              <div id="breadcrumb" class="mb-2 text-small">
+                                <a href="index.html">Apache 
Tapestry</a>&nbsp;&gt;&nbsp;<a 
href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a 
href="developer-information.html">Developer Information</a>&nbsp;&gt;&nbsp;<a 
href="development-roadmap.html">Development Roadmap</a>
+              </div>
+              <!-- /// Breadcrumb End -->
+
+              <!-- /// Smallbanner Start -->
+                            <div id="smallbanner"><h1 class="title" 
id="title">Development Roadmap</h1></div>
+              <!-- /// Smallbanner Start -->
+            
+            <!-- /// Content Start -->
+            <div id="content">
+                            <div id="ConfluenceContent"><p><em>Last updated: 
2024-04-04</em></p><p>We're excited to share a (rough) road map for 2024 of 
upcoming development and an overall strategy for the project!</p><p>There are 
no deadlines attached, as we don't want to make any explicit commitments if we 
might not able to keep them due to our available resources.</p><p>Nevertheless, 
the road map paints a particular picture of the current state of development 
and what to expect in the future. And it's an invitation to discuss these 
features, ideas, and the general direction.</p><h2 
id="DevelopmentRoadmap-(INPROGRESS)JakartaEE">(IN PROGRESS) Jakarta 
EE</h2><p>We hear you that this is the most pressing issue, and work is 
underway to make this our next big release. Instead of a hard breaking change 
for everyone, we decided to support both Java EE and Jakarta EE in the form of 
two branches:</p><ul><li>The <code>master</code> branch becomes the Jakarta 
EE-compatible one</li><li>A new 
 branch called <code>javax</code> was started from <code>5.8.4</code> to keep 
supporting Java EE</li></ul><p>For the foreseeable future, we will implement 
any new features, bug fixes, security-related updates, etc., in both branches 
so you can enjoy Tapestry improvements regardless of your Servlet 
needs.</p><p>One breaking change we're going to introduce (besides the Servlet 
API itself) is the minimum required Java version going up to 11.</p><p>Many 
Servlet containers, like Jetty or Tomcat, require at least Java 11, although 
Jakarta EE 9 can be run on Java 8. Our own <code>tapestry-runner</code> is 
based on Jetty, so we'd need to develop a new one based on another container to 
make Java 8 work for development. To avoid stretching our resources too thin, 
we decided to increase the required minimum Java version instead, as the Java 
EE variant is still available for Java 8 and will be developed alongside the 
Jakarta EE variant.</p><h2 class="heading-element" id="DevelopmentRoadmap-(INPR
 OGRESS)Website/Documentationupdates">(IN PROGRESS) Website/Documentation 
updates</h2><p>The website and documentation are in dire need of some 
updates.</p><p>With two actively developed branches, we want to provide a 
multi-version documentation system, so it's easier to discern how to use 
features with your version, and what might be outdated, etc..</p><p>Therefore, 
we're going to move the documentation to the Git-based tool <a 
class="external-link" href="https://antora.org"; rel="nofollow">Antora</a>. It 
supports documentation for multiple versions, and thanks to its Git-based 
approach, it will be easier for people to contribute, provide changes, and 
more, through pull requests.</p><h2 class="heading-element" 
id="DevelopmentRoadmap-(PLANNED)Makingcontributionsmoreaccessible">(PLANNED) 
Making contributions more accessible</h2><p>Every open-source project needs 
contributions.</p><p>Right now, our resources are pretty sparse, but we see a 
lot of awesome people from the community wantin
 g to contribute, like the latest PR that started the Jakarta EE 
work.</p><p>Still, the initial hurdle to take to participate needs to be lower, 
especially since Apache restricted public signups for their JIRA.</p><p>That's 
why we plan to move more towards GitHub, as it's the de facto standard for most 
open-source projects. GH issues are easier to participate in than Apache Jira 
and are better integrated into pull requests and discussions.</p><p>The move 
isn't supposed to replace the mailing lists, but complement them. In the long 
run, Jira might be replaced with GH issues, as maintaining two issues trackers 
and keeping them in sync requires a lot of additional work.</p><h2 
class="heading-element" 
id="DevelopmentRoadmap-(PLANNED)CommunityProjects">(PLANNED) Community 
Projects</h2><p>The Tapestry framework comes with many "batteries included", 
which is one of its strengths. However, keeping all the different parts 
up-to-date requires a lot of work, too.</p><p>That's why we're planning
  to move a few of the <code>tapestry-*</code> projects into a 
yet-to-be-created "community projects" organization on GitHub.</p><p>For 
example, <code>tapestry-mongodb</code> is a severely outdated dependency. 
There's an argument to remove it in a future version, but we prefer not to 
remove any feature without the absolute necessity to do so. Instead, certain 
projects will live on separately from the main project. That doesn't mean we 
don't want to update at all. However, their priority will be lower than any 
project in the primary repository.</p><p>On the other hand, we plan to support 
certain third-party projects and try to bring them into the fold of the 
community projects. This way, such essential projects will receive quicker 
updates and be easier to discover.</p><h2 class="heading-element" 
id="DevelopmentRoadmap-(PLANNED)UpdatingGuides">(PLANNED) Updating 
Guides</h2><p>There are multiple guides available on the project's website, and 
they need updating. Especially the contribut
 ion/development guides should always be up-to-date and as simple as possible, 
to encourage more participation.</p><p>Some of the required steps to set up a 
project might be replaced by improving the Gradle scripts to make it even 
easier.</p><p></p></div>
+            </div>
+            <!-- /// Content End -->
+          </div>
+        </div>
+      </div>
+    </div>
+  </article>
+
+  <!-- /// Footer Start -->
+    <div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather 
logo, and the Apache Tapestry project logo are trademarks of The Apache 
Software Foundation.</p><p><br clear="none"><footer class="py-3">
+  <div class="container-fluid">
+    <div class="container">
+      <div class="row">
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Apache Tapestry</span>
+          <ul><li><a href="index.html">Home</a></li><li><a 
href="download.html">Download</a></li><li><a 
href="about.html">Team</a></li><li><a 
href="https://www.apache.org/licenses/LICENSE-2.0";>License</a></li></ul>
+          <span class="font-weight-bold">Documentation</span>
+          <ul><li><a href="introduction.html">Introduction</a></li><li><a 
href="principles.html">Principles</a></li><li><i class="fas fa-play"></i> <a 
href="getting-started.html">Getting Started</a></li><li><i class="fas 
fa-play"></i> <a href="user-guide.html">User Guide</a></li><li><i class="fas 
fa-book"></i> <a href="documentation.html">Docs</a></li><li><i class="fas 
fa-book"></i> <a href="component-reference.html">Component 
Reference</a></li><li><i class="fas fa-book"></i> <a 
href="current/apidocs">Apidocs</a></li><li><a 
href="frequently-asked-questions.html">FAQ</a></li></ul>
+        </div>
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Community</span>
+          <ul><li><i class="fas fa-envelope-open-text"></i> <a 
href="community.html">Mailing Lists</a></li><li><i class="fab 
fa-stack-overflow"> </i> <a 
href="https://stackoverflow.com/questions/tagged/tapestry";>StackOverflow</a></li><li><a
 href="support.html">Support</a></li><li><a href="community.html">Getting 
Involved</a></li><li><a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=300026356";
 title="Edit this page (requires approval, just ask on the mailing list)">Edit 
this page</a></li></ul>
+          <span class="font-weight-bold">Social</span>
+          <ul><li><i class="fab fa-twitter"></i> <a 
href="https://twitter.com/ApacheTapestry";>@ApacheTapestry</a></li><li><i 
class="fas fa-hashtag"></i> <a 
href="https://twitter.com/hashtag/tapestry5";>#tapestry5</a></li></ul>
+          <span class="font-weight-bold">Development</span>
+          <ul><li><i class="fab fa-git"></i> <a 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source 
Code</a></li><li><i class="fab fa-jira"></i> <a 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a></li></ul>
+        </div>
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Apache</span>
+          <ul><li><a href="https://www.apache.org/";>About 
Apache</a></li><li><a 
href="https://apachecon.com/?ref=royale.apache.org";>Events</a></li><li><a 
href="https://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
 href="https://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a 
href="https://www.apache.org/security/";>Security</a></li><li><a 
href="https://www.apache.org/foundation/thanks.html";>Thanks!</a></li></ul>
+        </div>
+        <div class="col-md-12 col-lg-6 clearfix">
+          <span class="font-weight-bold d-block">About us</span>
+          <p class="float-right ml-3 mb-0"><img 
src="images/apache-tapestry-icon-light.svg" width="100" alt="Apache Tapestry" 
title="Apache Tapestry"></p>
+          <p><a href="https://tapestry.apache.org/";>Apache Tapestry&#8482;</a> 
is an open-source component-oriented framework for creating dynamic, robust, 
highly scalable web applications in Java.</p>
+          <p>Tapestry complements and builds upon the standard Java Servlet 
API, and so it works in any servlet container or application server.</p>
+          <p class="float-right ml-3 mb-0"><img 
src="images/apache-powered-by.svg" width="100" alt="Apache PoweredBy" 
title="Apache PoweredBy"></p>
+          <p>
+            <a href="https://tapestry.apache.org/";>Apache Tapestry&#8482;</a>, 
<a href="https://www.apache.org/";>Apache&#8482;</a> and the <a 
href="https://www.apache.org/foundation/press/kit/";>Apache feather 
logo&#8482;</a>
+            are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective owners.
+          </p>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-12">
+          Copyright &#169; 2020 The Apache Software Foundation, Licensed under 
the <a href="https://www.apache.org/licenses/LICENSE-2.0";>Apache License, 
Version 2.0</a>.
+        </div>
+      </div>
+    </div>
+  </div>
+</footer><br clear="none"></p><p><br clear="none"></p></div>
+  <!-- /// Footer End -->
+</body>
+</html>

Modified: 
websites/production/tapestry/content/documentation-improvement-tasks.html
==============================================================================
--- websites/production/tapestry/content/documentation-improvement-tasks.html 
(original)
+++ websites/production/tapestry/content/documentation-improvement-tasks.html 
Thu Apr  4 09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

Modified: websites/production/tapestry/content/documentation.html
==============================================================================
--- websites/production/tapestry/content/documentation.html (original)
+++ websites/production/tapestry/content/documentation.html Thu Apr  4 09:17:08 
2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache
@@ -142,7 +143,7 @@
             
             <!-- /// Content Start -->
             <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 
href="introduction.html">Introduction</a></li><li><a 
href="getting-started.html">Getting Started</a></li><li><a 
href="principles.html">Principles</a></li><li><a 
href="tapestry-tutorial.html">Tapestry Tutorial</a><ul 
class="childpages-macro"><li><a 
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a href="creating-the-skeleton-application.html">Creating 
The Skeleton Application</a></li><li><a 
href="exploring-the-project.html">Exploring the Project</a></li><li><a 
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a 
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a 
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul></li><li><a href="u
 ser-guide.html">User Guide</a><ul class="childpages-macro"><li><a 
href="supported-environments-and-versions.html">Supported Environments and 
Versions</a></li><li><a href="project-layout.html">Project 
Layout</a></li><li><a href="configuration.html">Configuration</a></li><li><a 
href="runtime-exceptions.html">Runtime Exceptions</a></li><li><a 
href="class-reloading.html">Class Reloading</a></li><li><a 
href="component-reference.html">Component Reference</a></li><li><a 
href="annotations.html">Annotations</a></li><li><a 
href="component-classes.html">Component Classes</a></li><li><a 
href="component-templates.html">Component Templates</a></li><li><a 
href="property-expressions.html">Property Expressions</a></li><li><a 
href="component-parameters.html">Component Parameters</a></li><li><a 
href="parameter-type-coercion.html">Parameter Type Coercion</a></li><li><a 
href="layout-component.html">Layout Component</a></li><li><a 
href="component-mixins.html">Component Mixins</a><ul class="childpages-mac
 ro"><li><a href="built-in-mixins.html">Built-in 
Mixins</a></li></ul></li><li><a href="page-navigation.html">Page 
Navigation</a></li><li><a href="localization.html">Localization</a></li><li><a 
href="page-life-cycle.html">Page Life Cycle</a></li><li><a 
href="request-processing.html">Request Processing</a></li><li><a 
href="component-rendering.html">Component Rendering</a></li><li><a 
href="component-events.html">Component Events</a></li><li><a 
href="url-rewriting.html">URL rewriting</a></li><li><a 
href="dom.html">DOM</a></li><li><a href="response-compression.html">Response 
Compression</a></li><li><a href="security.html">Security</a></li><li><a 
href="https.html">HTTPS</a></li><li><a 
href="content-type-and-markup.html">Content Type and Markup</a></li><li><a 
href="persistent-page-data.html">Persistent Page Data</a></li><li><a 
href="session-storage.html">Session Storage</a><ul 
class="childpages-macro"><li><a href="clustering-issues.html">Clustering 
Issues</a></li></ul></li><li><a href="inje
 ction.html">Injection</a></li><li><a 
href="environmental-services.html">Environmental Services</a></li><li><a 
href="css.html">CSS</a></li><li><a href="assets.html">Assets</a></li><li><a 
href="forms-and-validation.html">Forms and Validation</a></li><li><a 
href="beaneditform-guide.html">BeanEditForm Guide</a></li><li><a 
href="uploading-files.html">Uploading Files</a></li><li><a 
href="logging.html">Logging</a></li><li><a 
href="unit-testing-pages-or-components.html">Unit testing pages or 
components</a></li><li><a href="integration-testing.html">Integration 
Testing</a></li><li><a href="development-dashboard.html">Development 
Dashboard</a></li><li><a href="modules.html">Modules</a><ul 
class="childpages-macro"><li><a href="built-in-modules.html">Built In 
Modules</a></li><li><a href="third-party-modules.html">Third Party 
Modules</a></li></ul></li><li><a href="ioc.html">IOC</a><ul 
class="childpages-macro"><li><a href="tapestry-ioc-overview.html">Tapestry IoC 
Overview</a></li><li><a href="tap
 estry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a 
href="defining-tapestry-ioc-services.html">Defining Tapestry IOC 
Services</a></li><li><a href="service-advisors.html">Service 
Advisors</a></li><li><a href="tapestry-ioc-decorators.html">Tapestry IoC 
Decorators</a></li><li><a href="tapestry-ioc-configuration.html">Tapestry IoC 
Configuration</a></li><li><a href="case-insensitivity.html">Case 
Insensitivity</a></li><li><a href="autoloading-modules.html">Autoloading 
Modules</a></li><li><a href="service-implementation-reloading.html">Service 
Implementation Reloading</a></li><li><a 
href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a 
href="symbols.html">Symbols</a></li><li><a 
href="chainbuilder-service.html">ChainBuilder Service</a></li><li><a 
href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a 
href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a 
href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><
 a href="injection-in-detail.html">Injection in Detail</a></li><li><a 
href="object-providers.html">Object Providers</a></li><li><a 
href="service-serialization.html">Service Serialization</a></li><li><a 
href="type-coercion.html">Type Coercion</a></li><li><a 
href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a 
href="registry-startup.html">Registry Startup</a></li><li><a 
href="parallel-execution.html">Parallel Execution</a></li><li><a 
href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a 
href="using-jsr-330-standard-annotations.html">Using JSR 330 standard 
annotations</a></li><li><a href="operation-tracker.html">Operation 
Tracker</a></li></ul></li><li><a href="hibernate-core.html">Hibernate - 
Core</a><ul class="childpages-macro"><li><a 
href="hibernate-core-conf.html">Hibernate - Core - Conf</a></li><li><a 
href="hibernate.html">Hibernate</a></li><li><a 
href="hibernate-user-guide.html">Hibernate User Guide</a></li></ul></li><li><a 
href="integrating-w
 ith-spring-framework.html">Integrating with Spring Framework</a></li><li><a 
href="bean-validation.html">Bean Validation</a></li><li><a 
href="component-report.html">Component Report</a></li><li><a 
href="aliases.html">Aliases</a></li><li><a 
href="integrating-with-jpa.html">Integrating with JPA</a></li><li><a 
href="client-side-javascript.html">Client-Side JavaScript</a><ul 
class="childpages-macro"><li><a href="javascript-modules.html">JavaScript 
Modules</a></li><li><a href="coffeescript.html">CoffeeScript</a></li><li><a 
href="typescript.html">TypeScript</a></li><li><a 
href="legacy-javascript.html">Legacy JavaScript</a></li><li><a 
href="ajax-and-zones.html">Ajax and Zones</a></li></ul></li><li><a 
href="rest-support-580.html">REST Support (5.8.0+)</a></li><li><a 
href="cors-cross-origin-resource-sharing-support-582.html">CORS (Cross-Origin 
Resource Sharing) Support (5.8.2+)</a></li></ul></li><li><a 
href="cheat-sheets.html">Cheat Sheets</a><ul class="childpages-macro"><li><a 
href="applicat
 ion-module-class-cheat-sheet.html">Application Module Class Cheat 
Sheet</a></li><li><a href="component-cheat-sheet.html">Component Cheat 
Sheet</a></li><li><a href="tapestry-for-jsf-users.html">Tapestry for JSF 
Users</a></li></ul></li><li><a href="cookbook.html">Cookbook</a><ul 
class="childpages-macro"><li><a href="default-parameter.html">Default 
Parameter</a></li><li><a href="overriding-exception-reporting.html">Overriding 
Exception Reporting</a></li><li><a href="error-page-recipe.html">Error Page 
Recipe</a></li><li><a href="supporting-informal-parameters.html">Supporting 
Informal Parameters</a></li><li><a href="component-libraries.html">Component 
Libraries</a></li><li><a href="switching-cases.html">Switching 
Cases</a></li><li><a href="enum-parameter-recipe.html">Enum Parameter 
Recipe</a></li><li><a href="extending-the-if-component.html">Extending the If 
Component</a></li><li><a 
href="meta-programming-page-content.html">Meta-Programming Page 
Content</a></li><li><a href="using-select
 -with-a-list.html">Using Select With a List</a></li><li><a 
href="ioc-cookbook.html">IoC cookbook</a><ul class="childpages-macro"><li><a 
href="ioc-cookbook-basic-services-and-injection.html">IoC Cookbook - Basic 
Services and Injection</a></li><li><a 
href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC 
Services</a></li><li><a href="ioc-cookbook-patterns.html">IoC Cookbook - 
Patterns</a></li><li><a href="ioc-cookbook-service-configurations.html">IoC 
cookbook - Service Configurations</a></li></ul></li><li><a 
href="performance-and-clustering.html">Performance and 
Clustering</a></li><li><a href="google-app-engine.html">Google App 
Engine</a></li></ul></li><li><a 
href="frequently-asked-questions.html">Frequently Asked Questions</a><ul 
class="childpages-macro"><li><a href="general-questions.html">General 
Questions</a></li><li><a href="templating-and-markup-faq.html">Templating and 
Markup FAQ</a></li><li><a href="page-and-component-classes-faq.html">Page And 
Componen
 t Classes FAQ</a></li><li><a href="forms-and-form-components-faq.html">Forms 
and Form Components FAQ</a></li><li><a 
href="beaneditform-faq.html">BeanEditForm FAQ</a></li><li><a 
href="link-components-faq.html">Link Components FAQ</a></li><li><a 
href="component-events-faq.html">Component Events FAQ</a></li><li><a 
href="javascript-faq.html">JavaScript FAQ</a></li><li><a 
href="ajax-components-faq.html">Ajax Components FAQ</a></li><li><a 
href="injection-faq.html">Injection FAQ</a></li><li><a 
href="tapestry-inversion-of-control-faq.html">Tapestry Inversion of Control 
FAQ</a></li><li><a href="security-faq.html">Security FAQ</a></li><li><a 
href="integration-with-existing-applications.html">Integration with existing 
applications</a></li><li><a href="request-processing-faq.html">Request 
Processing FAQ</a></li><li><a 
href="limitations.html">Limitations</a></li><li><a 
href="specific-errors-faq.html">Specific Errors FAQ</a></li><li><a 
href="hibernate-support-faq.html">Hibernate Support FAQ</a></
 li><li><a href="maven-support-faq.html">Maven Support FAQ</a></li><li><a 
href="release-upgrade-faq.html">Release Upgrade FAQ</a></li></ul></li><li><a 
href="release-notes.html">Release Notes</a><ul class="childpages-macro"><li><a 
href="how-to-upgrade.html">How to Upgrade</a></li><li><a 
href="release-notes-50.html">Release Notes 5.0</a></li><li><a 
href="release-notes-51.html">Release Notes 5.1</a></li><li><a 
href="release-notes-52.html">Release Notes 5.2</a><ul 
class="childpages-macro"><li><a href="release-notes-520.html">Release Notes 
5.2.0</a></li><li><a href="release-notes-521.html">Release Notes 
5.2.1</a></li><li><a href="release-notes-522.html">Release Notes 
5.2.2</a></li><li><a href="release-notes-523.html">Release Notes 
5.2.3</a></li><li><a href="release-notes-524.html">Release Notes 
5.2.4</a></li><li><a href="release-notes-525.html">Release Notes 
5.2.5</a></li><li><a href="release-notes-526.html">Release Notes 
5.2.6</a></li></ul></li><li><a href="release-notes-53.html">Release
  Notes 5.3</a></li><li><a href="release-notes-531.html">Release Notes 
5.3.1</a></li><li><a href="release-notes-532.html">Release Notes 
5.3.2</a></li><li><a href="release-notes-533.html">Release Notes 
5.3.3</a></li><li><a href="release-notes-534.html">Release Notes 
5.3.4</a></li><li><a href="release-notes-535.html">Release Notes 
5.3.5</a></li><li><a href="release-notes-536.html">Release Notes 
5.3.6</a></li><li><a href="release-notes-537.html">Release Notes 
5.3.7</a></li><li><a href="release-notes-538.html">Release Notes 
5.3.8</a></li><li><a href="release-notes-54.html">Release Notes 
5.4</a></li><li><a href="release-notes-541.html">Release Notes 
5.4.1</a></li><li><a href="release-notes-542.html">Release Notes 
5.4.2</a></li><li><a href="release-notes-543.html">Release Notes 
5.4.3</a></li><li><a href="release-notes-544.html">Release Notes 
5.4.4</a></li><li><a href="release-notes-545.html">Release Notes 
5.4.5</a></li><li><a href="release-notes-550.html">Release Notes 
5.5.0</a></li><li><a
  href="release-notes-560.html">Release Notes 5.6.0</a></li><li><a 
href="release-notes-561.html">Release Notes 5.6.1</a></li><li><a 
href="release-notes-562.html">Release Notes 5.6.2</a></li><li><a 
href="release-notes-563.html">Release Notes 5.6.3</a></li><li><a 
href="release-notes-570.html">Release Notes 5.7.0</a></li><li><a 
href="release-notes-571.html">Release Notes 5.7.1</a></li><li><a 
href="release-notes-572.html">Release Notes 5.7.2</a></li><li><a 
href="release-notes-564.html">Release Notes 5.6.4</a></li><li><a 
href="release-notes-573.html">Release Notes 5.7.3</a></li><li><a 
href="release-notes-580.html">Release Notes 5.8.0</a></li><li><a 
href="release-notes-581.html">Release Notes 5.8.1</a></li><li><a 
href="release-notes-582.html">Release Notes 5.8.2</a></li><li><a 
href="release-notes-583.html">Release Notes 5.8.3</a></li><li><a 
href="release-notes-584.html">Release Notes 5.8.4</a></li><li><a 
href="release-notes-585.html">Release Notes 5.8.5</a></li></ul></li><li><a 
href="javas
 cript-rewrite-in-54.html">JavaScript Rewrite in 5.4</a></li><li><a 
href="support.html">Support</a></li><li><a 
href="developer-information.html">Developer Information</a><ul 
class="childpages-macro"><li><a 
href="building-tapestry-from-source.html">Building Tapestry from 
Source</a></li><li><a href="confluence-site-setup.html">Confluence Site 
Setup</a><ul class="childpages-macro"><li><a 
href="since-and-deprecated-user-macros.html">Since and Deprecated User 
Macros</a></li></ul></li><li><a href="developer-bible.html">Developer 
Bible</a></li><li><a href="release-process.html">Release Process</a></li><li><a 
href="the-tapestry-jail.html">The tapestry jail</a></li><li><a 
href="version-numbers.html">Version Numbers</a></li><li><a 
href="development-road-map-2024.html">Development Road Map 
2024</a></li></ul></li></ul></div>
+                            <div id="ConfluenceContent"><div 
style="float:right;margin-left:1em"><h2 id="Documentation-AllTopics">All 
Topics</h2><ul class="childpages-macro"><li><a 
href="introduction.html">Introduction</a></li><li><a 
href="getting-started.html">Getting Started</a></li><li><a 
href="principles.html">Principles</a></li><li><a 
href="tapestry-tutorial.html">Tapestry Tutorial</a><ul 
class="childpages-macro"><li><a 
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a href="creating-the-skeleton-application.html">Creating 
The Skeleton Application</a></li><li><a 
href="exploring-the-project.html">Exploring the Project</a></li><li><a 
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a 
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a 
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul></li><li><a href="u
 ser-guide.html">User Guide</a><ul class="childpages-macro"><li><a 
href="supported-environments-and-versions.html">Supported Environments and 
Versions</a></li><li><a href="project-layout.html">Project 
Layout</a></li><li><a href="configuration.html">Configuration</a></li><li><a 
href="runtime-exceptions.html">Runtime Exceptions</a></li><li><a 
href="class-reloading.html">Class Reloading</a></li><li><a 
href="component-reference.html">Component Reference</a></li><li><a 
href="annotations.html">Annotations</a></li><li><a 
href="component-classes.html">Component Classes</a></li><li><a 
href="component-templates.html">Component Templates</a></li><li><a 
href="property-expressions.html">Property Expressions</a></li><li><a 
href="component-parameters.html">Component Parameters</a></li><li><a 
href="parameter-type-coercion.html">Parameter Type Coercion</a></li><li><a 
href="layout-component.html">Layout Component</a></li><li><a 
href="component-mixins.html">Component Mixins</a><ul class="childpages-mac
 ro"><li><a href="built-in-mixins.html">Built-in 
Mixins</a></li></ul></li><li><a href="page-navigation.html">Page 
Navigation</a></li><li><a href="localization.html">Localization</a></li><li><a 
href="page-life-cycle.html">Page Life Cycle</a></li><li><a 
href="request-processing.html">Request Processing</a></li><li><a 
href="component-rendering.html">Component Rendering</a></li><li><a 
href="component-events.html">Component Events</a></li><li><a 
href="url-rewriting.html">URL rewriting</a></li><li><a 
href="dom.html">DOM</a></li><li><a href="response-compression.html">Response 
Compression</a></li><li><a href="security.html">Security</a></li><li><a 
href="https.html">HTTPS</a></li><li><a 
href="content-type-and-markup.html">Content Type and Markup</a></li><li><a 
href="persistent-page-data.html">Persistent Page Data</a></li><li><a 
href="session-storage.html">Session Storage</a><ul 
class="childpages-macro"><li><a href="clustering-issues.html">Clustering 
Issues</a></li></ul></li><li><a href="inje
 ction.html">Injection</a></li><li><a 
href="environmental-services.html">Environmental Services</a></li><li><a 
href="css.html">CSS</a></li><li><a href="assets.html">Assets</a></li><li><a 
href="forms-and-validation.html">Forms and Validation</a></li><li><a 
href="beaneditform-guide.html">BeanEditForm Guide</a></li><li><a 
href="uploading-files.html">Uploading Files</a></li><li><a 
href="logging.html">Logging</a></li><li><a 
href="unit-testing-pages-or-components.html">Unit testing pages or 
components</a></li><li><a href="integration-testing.html">Integration 
Testing</a></li><li><a href="development-dashboard.html">Development 
Dashboard</a></li><li><a href="modules.html">Modules</a><ul 
class="childpages-macro"><li><a href="built-in-modules.html">Built In 
Modules</a></li><li><a href="third-party-modules.html">Third Party 
Modules</a></li></ul></li><li><a href="ioc.html">IOC</a><ul 
class="childpages-macro"><li><a href="tapestry-ioc-overview.html">Tapestry IoC 
Overview</a></li><li><a href="tap
 estry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a 
href="defining-tapestry-ioc-services.html">Defining Tapestry IOC 
Services</a></li><li><a href="service-advisors.html">Service 
Advisors</a></li><li><a href="tapestry-ioc-decorators.html">Tapestry IoC 
Decorators</a></li><li><a href="tapestry-ioc-configuration.html">Tapestry IoC 
Configuration</a></li><li><a href="case-insensitivity.html">Case 
Insensitivity</a></li><li><a href="autoloading-modules.html">Autoloading 
Modules</a></li><li><a href="service-implementation-reloading.html">Service 
Implementation Reloading</a></li><li><a 
href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a 
href="symbols.html">Symbols</a></li><li><a 
href="chainbuilder-service.html">ChainBuilder Service</a></li><li><a 
href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a 
href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a 
href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><
 a href="injection-in-detail.html">Injection in Detail</a></li><li><a 
href="object-providers.html">Object Providers</a></li><li><a 
href="service-serialization.html">Service Serialization</a></li><li><a 
href="type-coercion.html">Type Coercion</a></li><li><a 
href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a 
href="registry-startup.html">Registry Startup</a></li><li><a 
href="parallel-execution.html">Parallel Execution</a></li><li><a 
href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a 
href="using-jsr-330-standard-annotations.html">Using JSR 330 standard 
annotations</a></li><li><a href="operation-tracker.html">Operation 
Tracker</a></li></ul></li><li><a href="hibernate-core.html">Hibernate - 
Core</a><ul class="childpages-macro"><li><a 
href="hibernate-core-conf.html">Hibernate - Core - Conf</a></li><li><a 
href="hibernate.html">Hibernate</a></li><li><a 
href="hibernate-user-guide.html">Hibernate User Guide</a></li></ul></li><li><a 
href="integrating-w
 ith-spring-framework.html">Integrating with Spring Framework</a></li><li><a 
href="bean-validation.html">Bean Validation</a></li><li><a 
href="component-report.html">Component Report</a></li><li><a 
href="aliases.html">Aliases</a></li><li><a 
href="integrating-with-jpa.html">Integrating with JPA</a></li><li><a 
href="client-side-javascript.html">Client-Side JavaScript</a><ul 
class="childpages-macro"><li><a href="javascript-modules.html">JavaScript 
Modules</a></li><li><a href="coffeescript.html">CoffeeScript</a></li><li><a 
href="typescript.html">TypeScript</a></li><li><a 
href="legacy-javascript.html">Legacy JavaScript</a></li><li><a 
href="ajax-and-zones.html">Ajax and Zones</a></li></ul></li><li><a 
href="rest-support-580.html">REST Support (5.8.0+)</a></li><li><a 
href="cors-cross-origin-resource-sharing-support-582.html">CORS (Cross-Origin 
Resource Sharing) Support (5.8.2+)</a></li></ul></li><li><a 
href="cheat-sheets.html">Cheat Sheets</a><ul class="childpages-macro"><li><a 
href="applicat
 ion-module-class-cheat-sheet.html">Application Module Class Cheat 
Sheet</a></li><li><a href="component-cheat-sheet.html">Component Cheat 
Sheet</a></li><li><a href="tapestry-for-jsf-users.html">Tapestry for JSF 
Users</a></li></ul></li><li><a href="cookbook.html">Cookbook</a><ul 
class="childpages-macro"><li><a href="default-parameter.html">Default 
Parameter</a></li><li><a href="overriding-exception-reporting.html">Overriding 
Exception Reporting</a></li><li><a href="error-page-recipe.html">Error Page 
Recipe</a></li><li><a href="supporting-informal-parameters.html">Supporting 
Informal Parameters</a></li><li><a href="component-libraries.html">Component 
Libraries</a></li><li><a href="switching-cases.html">Switching 
Cases</a></li><li><a href="enum-parameter-recipe.html">Enum Parameter 
Recipe</a></li><li><a href="extending-the-if-component.html">Extending the If 
Component</a></li><li><a 
href="meta-programming-page-content.html">Meta-Programming Page 
Content</a></li><li><a href="using-select
 -with-a-list.html">Using Select With a List</a></li><li><a 
href="ioc-cookbook.html">IoC cookbook</a><ul class="childpages-macro"><li><a 
href="ioc-cookbook-basic-services-and-injection.html">IoC Cookbook - Basic 
Services and Injection</a></li><li><a 
href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC 
Services</a></li><li><a href="ioc-cookbook-patterns.html">IoC Cookbook - 
Patterns</a></li><li><a href="ioc-cookbook-service-configurations.html">IoC 
cookbook - Service Configurations</a></li></ul></li><li><a 
href="performance-and-clustering.html">Performance and 
Clustering</a></li><li><a href="google-app-engine.html">Google App 
Engine</a></li></ul></li><li><a 
href="frequently-asked-questions.html">Frequently Asked Questions</a><ul 
class="childpages-macro"><li><a href="general-questions.html">General 
Questions</a></li><li><a href="templating-and-markup-faq.html">Templating and 
Markup FAQ</a></li><li><a href="page-and-component-classes-faq.html">Page And 
Componen
 t Classes FAQ</a></li><li><a href="forms-and-form-components-faq.html">Forms 
and Form Components FAQ</a></li><li><a 
href="beaneditform-faq.html">BeanEditForm FAQ</a></li><li><a 
href="link-components-faq.html">Link Components FAQ</a></li><li><a 
href="component-events-faq.html">Component Events FAQ</a></li><li><a 
href="javascript-faq.html">JavaScript FAQ</a></li><li><a 
href="ajax-components-faq.html">Ajax Components FAQ</a></li><li><a 
href="injection-faq.html">Injection FAQ</a></li><li><a 
href="tapestry-inversion-of-control-faq.html">Tapestry Inversion of Control 
FAQ</a></li><li><a href="security-faq.html">Security FAQ</a></li><li><a 
href="integration-with-existing-applications.html">Integration with existing 
applications</a></li><li><a href="request-processing-faq.html">Request 
Processing FAQ</a></li><li><a 
href="limitations.html">Limitations</a></li><li><a 
href="specific-errors-faq.html">Specific Errors FAQ</a></li><li><a 
href="hibernate-support-faq.html">Hibernate Support FAQ</a></
 li><li><a href="maven-support-faq.html">Maven Support FAQ</a></li><li><a 
href="release-upgrade-faq.html">Release Upgrade FAQ</a></li></ul></li><li><a 
href="release-notes.html">Release Notes</a><ul class="childpages-macro"><li><a 
href="how-to-upgrade.html">How to Upgrade</a></li><li><a 
href="release-notes-50.html">Release Notes 5.0</a></li><li><a 
href="release-notes-51.html">Release Notes 5.1</a></li><li><a 
href="release-notes-52.html">Release Notes 5.2</a><ul 
class="childpages-macro"><li><a href="release-notes-520.html">Release Notes 
5.2.0</a></li><li><a href="release-notes-521.html">Release Notes 
5.2.1</a></li><li><a href="release-notes-522.html">Release Notes 
5.2.2</a></li><li><a href="release-notes-523.html">Release Notes 
5.2.3</a></li><li><a href="release-notes-524.html">Release Notes 
5.2.4</a></li><li><a href="release-notes-525.html">Release Notes 
5.2.5</a></li><li><a href="release-notes-526.html">Release Notes 
5.2.6</a></li></ul></li><li><a href="release-notes-53.html">Release
  Notes 5.3</a></li><li><a href="release-notes-531.html">Release Notes 
5.3.1</a></li><li><a href="release-notes-532.html">Release Notes 
5.3.2</a></li><li><a href="release-notes-533.html">Release Notes 
5.3.3</a></li><li><a href="release-notes-534.html">Release Notes 
5.3.4</a></li><li><a href="release-notes-535.html">Release Notes 
5.3.5</a></li><li><a href="release-notes-536.html">Release Notes 
5.3.6</a></li><li><a href="release-notes-537.html">Release Notes 
5.3.7</a></li><li><a href="release-notes-538.html">Release Notes 
5.3.8</a></li><li><a href="release-notes-54.html">Release Notes 
5.4</a></li><li><a href="release-notes-541.html">Release Notes 
5.4.1</a></li><li><a href="release-notes-542.html">Release Notes 
5.4.2</a></li><li><a href="release-notes-543.html">Release Notes 
5.4.3</a></li><li><a href="release-notes-544.html">Release Notes 
5.4.4</a></li><li><a href="release-notes-545.html">Release Notes 
5.4.5</a></li><li><a href="release-notes-550.html">Release Notes 
5.5.0</a></li><li><a
  href="release-notes-560.html">Release Notes 5.6.0</a></li><li><a 
href="release-notes-561.html">Release Notes 5.6.1</a></li><li><a 
href="release-notes-562.html">Release Notes 5.6.2</a></li><li><a 
href="release-notes-563.html">Release Notes 5.6.3</a></li><li><a 
href="release-notes-570.html">Release Notes 5.7.0</a></li><li><a 
href="release-notes-571.html">Release Notes 5.7.1</a></li><li><a 
href="release-notes-572.html">Release Notes 5.7.2</a></li><li><a 
href="release-notes-564.html">Release Notes 5.6.4</a></li><li><a 
href="release-notes-573.html">Release Notes 5.7.3</a></li><li><a 
href="release-notes-580.html">Release Notes 5.8.0</a></li><li><a 
href="release-notes-581.html">Release Notes 5.8.1</a></li><li><a 
href="release-notes-582.html">Release Notes 5.8.2</a></li><li><a 
href="release-notes-583.html">Release Notes 5.8.3</a></li><li><a 
href="release-notes-584.html">Release Notes 5.8.4</a></li><li><a 
href="release-notes-585.html">Release Notes 5.8.5</a></li></ul></li><li><a 
href="javas
 cript-rewrite-in-54.html">JavaScript Rewrite in 5.4</a></li><li><a 
href="support.html">Support</a></li><li><a 
href="developer-information.html">Developer Information</a><ul 
class="childpages-macro"><li><a 
href="building-tapestry-from-source.html">Building Tapestry from 
Source</a></li><li><a href="confluence-site-setup.html">Confluence Site 
Setup</a><ul class="childpages-macro"><li><a 
href="since-and-deprecated-user-macros.html">Since and Deprecated User 
Macros</a></li></ul></li><li><a href="developer-bible.html">Developer 
Bible</a></li><li><a href="release-process.html">Release Process</a></li><li><a 
href="the-tapestry-jail.html">The tapestry jail</a></li><li><a 
href="version-numbers.html">Version Numbers</a></li><li><a 
href="development-roadmap.html">Development 
Roadmap</a></li></ul></li></ul></div>
 
 
 <p>Welcome to the Tapestry 5 Documentation, a collection of guides to teach 
beginners the basics and help experienced developers deepen their understanding 
of Tapestry's power.</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="table table-bordered table-responsive"><colgroup span="1"><col 
span="1"><col span="1"></colgroup><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a 
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 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="confluenceTd"><p><a href="tapestry-tutoria
 l.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 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 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 
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 
href="frequently-asked-questions.html">FAQ</a></stron
 g></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 
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></tbody></table></div><h1 
id="Documentation-APIandComponentReference">API and Component 
Reference</h1><div class="table-wrap"><table class="table table-bordered 
table-responsive"><colgroup span="1"><col span="1" style="width: 18.81%;"><col 
span="1" style="width: 9.02111%;"><col span="1" style="width: 9.02111%;"><col 
span="1" style="width: 9.02111%;"><col span="1" style="width: 9.78887%;"><col 
span="1" style="width: 9.78887%;"><col span="1" style="width: 9.78887%;"><col 
span="1" style="width: 9.78887%;"><col span="1" style="width: 14.9712%;"><col 
span="1"></colgroup><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 class="external-link" 
href="http://tapestry.apache.org/5.3.7/apidocs/";>5.3.8</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/5.4";>5.4</a></td><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/5.5.0";>5.5</a></td><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/5.6.3";>5.6.3</a></td><td colspan="1" 
rowspan="1" class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/5.7.3";>5.7.3</a></td><td colspan="1" 
rowspan="1" class="confluenceTd"><a class="external-lin
 k" href="http://tapestry.apache.org/current";>5.8.3 
(current)</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><em><span class="confluence-link">see 
5.7.2</span></em></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><em>see 5.7.2</em></td><td colspan="1" rowspan="1" 
class="confluenceTd">see 5.7.2</td><td colspan="1" rowspan="1" 
class="confluenceTd">see 5.7.2</td><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="https://tapestry.apache.org/component-reference.html";>5.7.3</a></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a class="external-link" 
href="https://tapestry.apache.org/component-reference.html";>5.8.3</a></td>
 </tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Release 
Notes:</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
href="release-notes-50.html">5.0</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a href="release-notes-51.html">5.1</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a 
href="release-notes-52.html">5.2</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a href="release-notes-538.html">5.3.8</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a 
href="release-notes-54.html">5.4</a></td><td colspan="1" rowspan="1" 
class="confluenceTd"><a href="release-notes-550.html">5.5</a></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a 
href="release-notes-560.html">5.6</a></td><td colspan="1" rowspan="1" 
class="confluenceTd"><a href="release-notes-570.html">5.7.0</a></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a 
href="release-notes-583.html">5.8.3</a></td></tr></tbody></table></div><p><sup>1<
 /sup> needs to be built manually from archived sources at <a 
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 
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 class="confluence-link"><a 
href="client-side-javascript.html">Client-Side JavaScript</a> and <a 
href="ajax-and-zones.html">Ajax and Zones</a> describe Tapestry's built-in 
support for dynamic in-page behavior.</li><li><a 
href="integrating-with-spring-framework.html">Integrating with Spring 
Framework</a> describes how to integrate Spring into your Tapestry 
application.</li><li><a href="hibernate.html">Tapestry/Hibernate Integration 
Library</a> provides out-of-the-box support for us
 ing Hibernate 3.</li><li><a href="bean-validation.html">JSR 303: Bean 
Validation</a> shows how to use standard annotations for validation</li><li><a 
href="integration-testing.html">Integration Testing</a> shows how to test your 
application with Selenium.</li></ul><p><a href="user-guide.html">More 
topics</a>...</p><h1 
id="Documentation-BlogsbyTapestryDevelopersandtheCommunity">Blogs by Tapestry 
Developers and the Community</h1><ul><li><a class="external-link" 
href="http://tapestryjava.blogspot.com/"; rel="nofollow">Tapestry 
Central</a>&#160;was Howard Lewis Ship's blog from 2003-2013. As the creator of 
Tapestry, he provides valuable insights into Tapestry's latest features and 
future directions.</li><li><a class="external-link" 
href="https://web.archive.org/web/20160410090538/http://blog.tapestry5.de/"; 
rel="nofollow">Igor Drobiazko's blog</a> (committer &amp; PMC) contains guides 
on Tapestry 5 development (2009-2013).</li><li><a class="external-link" 
href="http://tawus.wordpress.com/";
  rel="nofollow">Java Magic</a> (by Taha Hafeez, committer) presents a series 
of tutorials illustrating some of the more advanced Tapestry and Plastic 
features and techniques (2011-2012).</li></ul><h1 
id="Documentation-BooksonTapestry">Books on Tapestry</h1><p>There are at least 
9 published <a href="books.html">books on Tapestry</a>, including three on 
Tapestry 5.</p><h1 id="Documentation-TapestryPresentations">Tapestry 
Presentations</h1><ul><li>Mark Shead's <a class="external-link" 
href="http://blog.markshead.com/900/tapestry-5-10-minute-demo/"; 
rel="nofollow">10 Minute Demo</a>&#160; (Video, 2011)</li><li>H. L. Ship's <a 
class="external-link" href="https://www.youtube.com/watch?v=5BGt7eMFC20"; 
rel="nofollow">Tapestry 5.4 - Bootstrap-enhanced Exception 
Reporting</a>&#160;(Video, 2012)</li><li><a class="external-link" 
href="https://web.archive.org/web/20170302154020/http://blog.tapestry5.de/wp-content/uploads/2010/06/JSF-2.0-vs-Tapestry-5.pdf";
 rel="nofollow">JavaServer Faces 2.0 vs. Ta
 pestry 5</a> (PDF, 2010) A Head-to-Head Comparison by Igor Drobiazko at Jazoon 
2010</li></ul><p><a href="presentations.html">More presentations</a> ...</p><h1 
id="Documentation-TapestryWikis">Tapestry Wikis</h1><ul><li><a 
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><li><a 
href="https://cwiki.apache.org/confluence/display/TAPESTRY5";>Tapestry Community 
Wiki (legacy)</a> &#8211; read-only copy of Tapestry's old Moin Moin wiki 
containing a lot of user-generated information on different Tapestry use 
cases.</li></ul><h1 id="Documentation-Gettinghelp">Getting help</h1><p>The 
primary method of support is the <a href="mailing-lists.html">Tapestry Mailing 
Lists</a>.</p><p>In addition, there are occasionally questions and answers 
about Tapestry at <a class="external-link" 
href="http://stackoverflow.com/questions/tagged/tapestry"; rel="nofollow">Stack 
Overflo
 w</a>.</p><h1 id="Documentation-TheDeveloperCorner">The Developer 
Corner</h1><p><a href="developer-information.html">Developer Information</a> 
gives information needed by the Tapestry 
developers</p><p></p><p></p><p></p></div>

Modified: websites/production/tapestry/content/dom.html
==============================================================================
--- websites/production/tapestry/content/dom.html (original)
+++ websites/production/tapestry/content/dom.html Thu Apr  4 09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache
@@ -142,7 +143,7 @@
             
             <!-- /// Content Start -->
             <div id="content">
-                            <div id="ConfluenceContent"><h1 
id="DOM-DocumentObjectModel">Document Object Model</h1><p>Tapestry 5 takes a 
very different approach to markup generation than most other frameworks. 
Components render out a Document Object Model (DOM). This is a tree of nodes 
representing elements, attributes and text within a document.</p><p>Once all 
rendering is complete, the DOM tree is streamed to the client.</p><p>The <a 
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/MarkupWriter.html";>MarkupWriter</a>
 interface allows the majority of component code to treat the generation of 
output as a stream. In reality, MarkupWriter is more like a cursor into the DOM 
tree, and the DOM may ultimately be operated upon in a random access manner 
(rather than the serial (or buffered) approach used in Tapestry 4).</p><div 
style="float:right; width:30%"><div class="confluence-information-macro 
confluence-information-macro-information"><p class
 ="title">A Note For Tapestry 4 Users</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>In Tapestry 4, markup generation 
was based on generating a character stream. At the lowest level, the fact that 
the output was in a markup format such as HTML, XHTML or WML was not known. 
Higher levels, such as the IMarkupWriter interface (and its implementations) 
provide the concept of markup generation: elements, attributes, start tags and 
end tags. This technique breaks down when two elements are peers, and not in a 
parent/child relationship. For example, the rendering of a FieldLabel component 
is affected by its companion TextField component. Handling these cases in 
Tapestry 4 required a number of kludges and special cases.</p></div></div></div>
+                            <div id="ConfluenceContent"><h1 
id="DOM-DocumentObjectModel">Document Object Model</h1><p>Tapestry 5 takes a 
very different approach to markup generation than most other frameworks. 
Components render out a Document Object Model (DOM). This is a tree of nodes 
representing elements, attributes and text within a document.</p><p>Once all 
rendering is complete, the DOM tree is streamed to the client.</p><p>The <a 
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/MarkupWriter.html";>MarkupWriter</a>
 interface allows the majority of component code to treat the generation of 
output as a stream. In reality, MarkupWriter is more like a cursor into the DOM 
tree, and the DOM may ultimately be operated upon in a random access manner 
(rather than the serial (or buffered) approach used in Tapestry 4).</p><div 
style="float:right; width:30%"><div class="confluence-information-macro 
confluence-information-macro-information"><p class
 ="title conf-macro-render">A Note For Tapestry 4 Users</p><span 
class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>In Tapestry 4, markup generation 
was based on generating a character stream. At the lowest level, the fact that 
the output was in a markup format such as HTML, XHTML or WML was not known. 
Higher levels, such as the IMarkupWriter interface (and its implementations) 
provide the concept of markup generation: elements, attributes, start tags and 
end tags. This technique breaks down when two elements are peers, and not in a 
parent/child relationship. For example, the rendering of a FieldLabel component 
is affected by its companion TextField component. Handling these cases in 
Tapestry 4 required a number of kludges and special cases.</p></div></div></div>
 
 
 <h1 id="DOM-DOMClasses">DOM Classes</h1><p>The implementation of this DOM is 
part of Tapestry, despite the fact that several third-party alternatives exist. 
This represents a desire to limit dependencies for the framework, but also the 
Tapestry DOM is streamlined for initial creation, and a limited amount of 
subsequent modification. Most DOM implementations are more sophisticated than 
needed for Tapestry, with greater support for querying (often using XPath) and 
manipulation.</p><p>Once the Document object is created, you don't directly 
create new DOM objects; instead, each DOM object includes methods that create 
new sub-objects. This primarily applies to the Element class, which can be a 
container of text, comments and other elements.</p><h2 
id="DOM-Document">Document</h2><p>The <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/dom/Document.html";>Document</a>
 object represents the an entire document, which is to say, an entire response t
 o be sent to the client.</p><p>Documents will have a single root element. The 
newRootElement() method is used to create the root element for the 
document.</p><p>The Document class also has methods for setting and getting the 
DTD, adding comments and text, and finding an element based on a path of 
element names.</p><h2 id="DOM-Element">Element</h2><p>An <a 
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/dom/Element.html";>Element</a>
 object represents an element of the document. Elements may have attributes, 
and they may themselves contain other elements, as well as text and 
comments.</p><p>The Element class has methods for searching, traversing and 
manipulating the DOM after it is built.</p><h1 
id="DOM-DOMManipulation/Rewriting">DOM Manipulation/Rewriting</h1><p>A powerful 
feature of Tapestry 5 is the ability to manipulate the structure and ordering 
of the DOM after it has been rendered. For example, this can be used to alter 
the output of 
 a component that may otherwise be outside of your control.</p><p>DOM 
manipulation is surprisingly fast, too.</p><p>Methods on Node (and Element, 
which is a subclass of Node) allow an existing node to be moved relative to an 
Element. Nodes may be moved before or after the Element, or may be moved inside 
an Element at the top (the first child) or the bottom (the last 
child).</p><p>Element's <code>attribute</code> method adds a new attribute 
name/value pair to the Element. If an existing attribute with the specified 
name already exists, then then the new value is ignored. This has implications 
when different pieces of code try to add attributes to an Element ... the first 
to add an attribute will "win". Conversely, the <code>forceAttributes</code> 
method can be used to update or remove an attribute.</p><p>In addition, the 
children of an Element may be removed or a Node (and all of its children) 
removed entirely.</p><p>Finally, an Element may "pop": the Element is removed 
and replaced w
 ith its children.</p><h1 id="DOM-MarkupWriter">MarkupWriter</h1><p>The <a 
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/MarkupWriter.html";>MarkupWriter
 interface</a> allows the structure of the document to be built while 
maintaining a streaming metaphor.</p><h2 
id="DOM-element()andend()methods">element() and end() methods</h2><p>Calls to 
element() create a new element within the tree, and may provide attributes for 
the new element as well. Calls to write(), writeln() and writef() write text 
nodes within the current element. <em>Every call to element() should be matched 
with a call to end()</em>, which is used to move the current node up one 
level.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">

Modified: websites/production/tapestry/content/download.html
==============================================================================
--- websites/production/tapestry/content/download.html (original)
+++ websites/production/tapestry/content/download.html Thu Apr  4 09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

Modified: websites/production/tapestry/content/downloadboxes-v2.html
==============================================================================
--- websites/production/tapestry/content/downloadboxes-v2.html (original)
+++ websites/production/tapestry/content/downloadboxes-v2.html Thu Apr  4 
09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

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 Thu Apr  4 
09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

Modified: websites/production/tapestry/content/environmental-services.html
==============================================================================
--- websites/production/tapestry/content/environmental-services.html (original)
+++ websites/production/tapestry/content/environmental-services.html Thu Apr  4 
09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

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 Thu Apr  4 
09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

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 Thu Apr  4 
09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache
@@ -327,13 +328,13 @@ public class Index
 
 
 
-<span class="gliffy-container" id="gliffy-container-24346949-4369" 
data-fullwidth="913" data-size="S" data-ceoid="24188263" 
data-edit="${diagramEditLink.getLinkUrl()}" 
data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Templates and 
Parameters">
+<span class="gliffy-container" id="gliffy-container-24346949-10" 
data-fullwidth="913" data-size="S" data-ceoid="24188263" 
data-edit="${diagramEditLink.getLinkUrl()}" 
data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Templates and 
Parameters">
 
-    <map id="gliffy-map-24346949-9988" name="gliffy-map-24346949-9988"></map>
+    <map id="gliffy-map-24346949-1353" name="gliffy-map-24346949-1353"></map>
 
-    <img class="gliffy-image gliffy-image-border" 
id="gliffy-image-24346949-4369" 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-9988">
+    <img class="gliffy-image gliffy-image-border" 
id="gliffy-image-24346949-10" 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-1353">
 
-    <map class="gliffy-dynamic" id="gliffy-dynamic-map-24346949-4369" 
name="gliffy-dynamic-map-24346949-4369"></map>
+    <map class="gliffy-dynamic" id="gliffy-dynamic-map-24346949-10" 
name="gliffy-dynamic-map-24346949-10"></map>
 </span>
 
 </p><p>The interesting point here (and this is an advanced concept in 
Tapestry, one we'll return to later) is that we can pass a chunk of the 
Index.tml template to the Layout component as the <code>sidebar</code> 
parameter. That's what the tapestry:parameter namespace (the "p:" prefix) is 
for; the element name is matched against a parameter of the component and the 
entire block of the template is passed into the Layout component ... which 
decides where, inside <em>its</em> template, that block gets rendered.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">

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 Thu 
Apr  4 09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

Modified: websites/production/tapestry/content/first.html
==============================================================================
--- websites/production/tapestry/content/first.html (original)
+++ websites/production/tapestry/content/first.html Thu Apr  4 09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

Modified: websites/production/tapestry/content/footer.html
==============================================================================
--- websites/production/tapestry/content/footer.html (original)
+++ websites/production/tapestry/content/footer.html Thu Apr  4 09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

Modified: websites/production/tapestry/content/footerv2.html
==============================================================================
--- websites/production/tapestry/content/footerv2.html (original)
+++ websites/production/tapestry/content/footerv2.html Thu Apr  4 09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

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 Thu 
Apr  4 09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache
@@ -143,11 +144,11 @@
             <!-- /// Content Start -->
             <div id="content">
                             <div id="ConfluenceContent"><h1 
id="FormsandFormComponentsFAQ-FormsandFormComponents">Forms and Form 
Components</h1><p>Main article: <a href="forms-and-validation.html">Forms and 
Validation</a></p><h2 
id="FormsandFormComponentsFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1669470857907 {padding: 0px;}
-div.rbtoc1669470857907 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470857907 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712222156305 {padding: 0px;}
+div.rbtoc1712222156305 ul {margin-left: 0px;}
+div.rbtoc1712222156305 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470857907">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712222156305">
 <ul class="toc-indentation"><li><a 
href="#FormsandFormComponentsFAQ-Whatisthet:formdatahiddenfieldfor?">What is 
the t:formdata hidden field for?</a></li><li><a 
href="#FormsandFormComponentsFAQ-HowdoIchangethelabelforafieldonthefly?">How do 
I change the label for a field on the fly?</a></li><li><a 
href="#FormsandFormComponentsFAQ-Tapestryfocusesonthewrongfieldinmyform,howdoIfixthat?">Tapestry
 focuses on the wrong field in my form, how do I fix that?</a></li></ul>
 </div><h2 
id="FormsandFormComponentsFAQ-Whatisthet:formdatahiddenfieldfor?">What is the 
<code>t:formdata</code> hidden field for?</h2><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 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">
 <pre><code class="language-java">public interface FormSupport extends 
ClientElement

Modified: websites/production/tapestry/content/forms-and-form-components.html
==============================================================================
--- websites/production/tapestry/content/forms-and-form-components.html 
(original)
+++ websites/production/tapestry/content/forms-and-form-components.html Thu Apr 
 4 09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache

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 Thu Apr  4 
09:17:08 2024
@@ -99,7 +99,8 @@
                 <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
                   <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
                   <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
-                </div>
+                  <a class="dropdown-item" href="/development-roadmap.html" 
title="Development Roadmap">Roadmap</a>
+  &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div>
               </li><li class="nav-item dropdown">
                 <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
                   Apache
@@ -187,11 +188,11 @@
 
 
 <p></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.rbtoc1711667514141 {padding: 0px;}
-div.rbtoc1711667514141 ul {margin-left: 0px;}
-div.rbtoc1711667514141 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712222197116 {padding: 0px;}
+div.rbtoc1712222197116 ul {margin-left: 0px;}
+div.rbtoc1712222197116 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1711667514141">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712222197116">
 <ul class="toc-indentation"><li>Related Articles</li></ul>
 <ul><li><a href="#FormsandValidation-TheFormComponent">The Form Component</a>
 <ul class="toc-indentation"><li><a href="#FormsandValidation-FormEvents">Form 
Events</a></li><li><a href="#FormsandValidation-HandlingEvents">Handling 
Events</a></li><li><a 
href="#FormsandValidation-TrackingValidationErrors">Tracking Validation 
Errors</a></li><li><a 
href="#FormsandValidation-StoringDataBetweenRequests">Storing Data Between 
Requests</a></li><li><a 
href="#FormsandValidation-ConfiguringFieldsandLabels">Configuring Fields and 
Labels</a></li></ul>



Reply via email to