Modified: websites/production/tapestry/content/release-notes-54.html
==============================================================================
--- websites/production/tapestry/content/release-notes-54.html (original)
+++ websites/production/tapestry/content/release-notes-54.html Mon Aug 26 
21:20:28 2019
@@ -77,7 +77,30 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>This is the consolidated list 
of changes between Tapestry versions 5.3 and 5.4. To upgrade to 5.4, most users 
who are not using deprecated features will be able to just update the 
dependency version in their Maven POM file or Gradle build script (or <a  
href="download.html">download</a> the new JAR files) and the new version will 
just work, although the introduction of Bootstrap CSS will require some styling 
adjustments for most applications not already using Bootstrap. Please read 
carefully below before upgrading, and also review the&#160;<a  
href="how-to-upgrade.html">How to Upgrade</a> instructions.</p><h2 
id="ReleaseNotes5.4-IncompatibleAPIs">Incompatible APIs</h2><h3 
id="ReleaseNotes5.4-JavaScriptSupport">JavaScriptSupport</h3><p>Some existing 
methods of JavaScriptSupport were changed from returning void, to returning the 
JavaScriptSupport instance, to allow for chaining of calls. This interface is 
consumed by end-user code, but no
 t generally implemented by end-user code.</p><h2 
id="ReleaseNotes5.4-BreakingFeatures">Breaking Features</h2><h3 
id="ReleaseNotes5.4-ClassFactoryRemoved">ClassFactory Removed</h3><p>Tapestry's 
use of the <a  class="external-link" 
href="http://www.csg.is.titech.ac.jp/~chiba/javassist/"; 
rel="nofollow">Javassist</a> bytecode library has been completely removed, 
along with many related services, such as <a  class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/services/ClassFactory.html";>ClassFactory</a>,
 that were deprecated in 5.3. Use <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/services/PlasticProxyFactory.html";>PlasticProxyFactory</a>
 instead. Most users will not be affected by this unless they relied on 
Tapestry's dependency on Javassist.</p><h3 
id="ReleaseNotes5.4-ClientBehaviorSupportFunctionalityRemoved">ClientBehaviorSupport
 Functionality Removed</h3><p>This service collected details a
 bout zone usage, including the client-side behavior associated with 
<code>FormFragment</code>s. This interface is only kept for binary 
compatibility in Tapestry 5.4; the implementation no longer does anything but 
throw exceptions and will be removed in 5.5 or later.</p><h3 
id="ReleaseNotes5.4-FormInjectorRemoved">FormInjector Removed</h3><p>The 
FormInjector component was removed; it was intended for use only inside the 
AjaxFormLoop component (which was rewritten in 5.4 and no longer uses 
FormInjector). FormInjector was not widely used elsewhere, if it was used at 
all.</p><h3 
id="ReleaseNotes5.4-MarkupWriterFactoryAPIChanged">MarkupWriterFactory API 
Changed</h3><p>The <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/MarkupWriterFactory.html";>MarkupWriterFactory</a>
 interface has 3 new methods, added to support the HTML5 rules for element 
endings. If you have any classes that <em>implement</em> MarkupWriterFactory 
(which is rare)
 , they'll need to be modified to implement the new methods. As noted in the <a 
 class="external-link" 
href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/services/ClientBehaviorSupport.html";>Javadocs</a>,
 use JavaScriptSupport directly instead.</p><h3 
id="ReleaseNotes5.4-InjectedScriptsatBottom">Injected Scripts at 
Bottom</h3><p>In prior versions of Tapestry, JavaScript libraries injected into 
the page (via the @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Import.html";>Import</a>
 annotation, or via <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html";>JavaScriptSupport</a>),
 were injected into the &lt;head&gt; element of the HTML page, either at the 
end of the element, or before any existing &lt;script&gt; element.</p><p>With 
this release, the Tapestry integrates with <a  class="external-link" 
href="http://requirejs.org/"; 
 rel="nofollow">RequireJS</a> to dynamically load libraries. This may affect a 
small number of JavaScript libraries, such as <a  class="external-link" 
href="http://www.google.com/analytics/"; rel="nofollow">Google Analytics</a> 
that need to be placed at the top of the page; in those cases, the library 
should be added to the template of your application's main layout component, 
instead of relying on @Import and JavaScriptSupport.</p><h3 
id="ReleaseNotes5.4-NoRedirectOnFormValidationErrors">No Redirect On Form 
Validation Errors</h3><p>In prior releases of Tapestry, when a client-side form 
was submitted and there were server-side validation errors, Tapestry would 
perform a redirect-after-post to re-render the page; this meant that the <a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValidationTracker.html";>ValidationTracker</a>
 object that stores validation errors would, itself, need to persist to the new 
render request, causing a server-sid
 e session to be created. Starting in 5.4, the default behavior for server-side 
validation exceptions is to re-render the page content immediately, within the 
same request; this obviates the need to use a persistent field to store the 
tracker.</p><h2 id="ReleaseNotes5.4-NewFeatures">New Features</h2><h3 
id="ReleaseNotes5.4-Componentfieldvisibility">Component field 
visibility</h3><p>In prior versions of Tapestry, all instance fields of 
components had to be visibility private; starting with versions 5.3.2 and 5.4, 
this has been relaxed. Component fields may be protected, or package private 
(that is, no visibility modifier). Fields that are final, or annotated with @<a 
 class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html";>Retain</a>
 may even be public. In any case, this makes it easier for pages to work with 
other pages in the same package, and for subclasses to more easily access the 
fields (including parameter fields, or 
 injections) provided by base classes. This feature should be used with care, 
as it can lead to designs that are more difficult to maintain.</p><h3 
id="ReleaseNotes5.4-JavaScriptModules">JavaScript Modules</h3><p>Prior releases 
of Tapestry primarily organized client-side logic in terms of JavaScript 
libraries. These libraries can be declaratively imported into the page (either 
during a full-page render, or during an Ajax partial page update). In addition, 
libraries can be combined together into <em>stacks</em>, which (in a production 
application) are combined into a single virtual asset.</p><p>The library 
approach is <a  href="javascript-rewrite-in-54.html">fundamentally limited in a 
number of ways</a>, including namespace pollution and dealing with dependencies 
between libraries. Tapestry 5.4 introduces a parallel mechanism, based on <a  
class="external-link" href="http://requirejs.org"; rel="nofollow">RequireJS</a> 
and the <a  class="external-link" href="https://github.com/amdjs/amd
 js-api/wiki/AMD" rel="nofollow">Asynchronous Module Definition</a> as a way to 
speed up initial page load and organize client-side JavaScript in a more 
expressive and maintainable way.</p><h3 
id="ReleaseNotes5.4-Client-sideAPIforinvokingserver-sideevents">Client-side API 
for invoking server-side events</h3><p>Tapestry 5.4.2 adds an API which makes 
it easy for server-side events to be invoked from JavaScript. In the 
server-side, you first need to annotate the event handler methods you want 
exposed with the new&#160;<code>@PublishEvent</code> annotation. Then, in JS, 
all you need to do is to call the&#160;<code>t5/core/ajax</code>&#160;function 
with the server-side event name/type in the <code>url</code> parameter 
and&#160;with an&#160;<code>options</code> parameter containing 
an&#160;<code>element</code> property, be it null or specifying an DOM element 
to be used as the starting point for finding the event information. More 
details in the&#160;<a  href="ajax-and-zones.html">Ajax and
  Zones page</a>.</p><h2>        Sub-task
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="release-notes-538.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Release Notes 5.3.8</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="release-notes.html" rel="parent">
+                                            <span class="aui-icon 
aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Release 
Notes</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="release-notes-541.html" rel="next">
+                <span class="title">Release Notes 5.4.1</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div>This is the consolidated list of changes between Tapestry versions 5.3 
and 5.4. To upgrade to 5.4, most users who are not using deprecated features 
will be able to just update the dependency version in their Maven POM file or 
Gradle build script (or <a  href="download.html">download</a> the new JAR 
files) and the new version will just work, although the introduction of 
Bootstrap CSS will require some styling adjustments for most applications not 
already using Bootstrap. Please read carefully below before upgrading, and also 
review the&#160;<a  href="how-to-upgrade.html">How to Upgrade</a> 
instructions.<h2 id="ReleaseNotes5.4-IncompatibleAPIs">Incompatible 
APIs</h2><h3 
id="ReleaseNotes5.4-JavaScriptSupport">JavaScriptSupport</h3><p>Some existing 
methods of JavaScriptSupport were changed from returning void, to returning the 
JavaScriptSupport instance, to allow for chaining of calls. This interface is 
consumed by end-user code, but not generally implemented by end-user code.</p>
 <h2 id="ReleaseNotes5.4-BreakingFeatures">Breaking Features</h2><h3 
id="ReleaseNotes5.4-ClassFactoryRemoved">ClassFactory Removed</h3><p>Tapestry's 
use of the <a  class="external-link" 
href="http://www.csg.is.titech.ac.jp/~chiba/javassist/"; 
rel="nofollow">Javassist</a> bytecode library has been completely removed, 
along with many related services, such as <a  class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/services/ClassFactory.html";>ClassFactory</a>,
 that were deprecated in 5.3. Use <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/services/PlasticProxyFactory.html";>PlasticProxyFactory</a>
 instead. Most users will not be affected by this unless they relied on 
Tapestry's dependency on Javassist.</p><h3 
id="ReleaseNotes5.4-ClientBehaviorSupportFunctionalityRemoved">ClientBehaviorSupport
 Functionality Removed</h3><p>This service collected details about zone usage, 
including the client-side be
 havior associated with <code>FormFragment</code>s. This interface is only kept 
for binary compatibility in Tapestry 5.4; the implementation no longer does 
anything but throw exceptions and will be removed in 5.5 or later.</p><h3 
id="ReleaseNotes5.4-FormInjectorRemoved">FormInjector Removed</h3><p>The 
FormInjector component was removed; it was intended for use only inside the 
AjaxFormLoop component (which was rewritten in 5.4 and no longer uses 
FormInjector). FormInjector was not widely used elsewhere, if it was used at 
all.</p><h3 
id="ReleaseNotes5.4-MarkupWriterFactoryAPIChanged">MarkupWriterFactory API 
Changed</h3><p>The <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/MarkupWriterFactory.html";>MarkupWriterFactory</a>
 interface has 3 new methods, added to support the HTML5 rules for element 
endings. If you have any classes that <em>implement</em> MarkupWriterFactory 
(which is rare), they'll need to be modified to implement th
 e new methods. As noted in the <a  class="external-link" 
href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/services/ClientBehaviorSupport.html";>Javadocs</a>,
 use JavaScriptSupport directly instead.</p><h3 
id="ReleaseNotes5.4-InjectedScriptsatBottom">Injected Scripts at 
Bottom</h3><p>In prior versions of Tapestry, JavaScript libraries injected into 
the page (via the @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Import.html";>Import</a>
 annotation, or via <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html";>JavaScriptSupport</a>),
 were injected into the &lt;head&gt; element of the HTML page, either at the 
end of the element, or before any existing &lt;script&gt; element.</p><p>With 
this release, the Tapestry integrates with <a  class="external-link" 
href="http://requirejs.org/"; rel="nofollow">RequireJS</a> to dynamically l
 oad libraries. This may affect a small number of JavaScript libraries, such as 
<a  class="external-link" href="http://www.google.com/analytics/"; 
rel="nofollow">Google Analytics</a> that need to be placed at the top of the 
page; in those cases, the library should be added to the template of your 
application's main layout component, instead of relying on @Import and 
JavaScriptSupport.</p><h3 
id="ReleaseNotes5.4-NoRedirectOnFormValidationErrors">No Redirect On Form 
Validation Errors</h3><p>In prior releases of Tapestry, when a client-side form 
was submitted and there were server-side validation errors, Tapestry would 
perform a redirect-after-post to re-render the page; this meant that the <a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValidationTracker.html";>ValidationTracker</a>
 object that stores validation errors would, itself, need to persist to the new 
render request, causing a server-side session to be created. Starting in 5.4, 
the
  default behavior for server-side validation exceptions is to re-render the 
page content immediately, within the same request; this obviates the need to 
use a persistent field to store the tracker.</p><h2 
id="ReleaseNotes5.4-NewFeatures">New Features</h2><h3 
id="ReleaseNotes5.4-Componentfieldvisibility">Component field 
visibility</h3><p>In prior versions of Tapestry, all instance fields of 
components had to be visibility private; starting with versions 5.3.2 and 5.4, 
this has been relaxed. Component fields may be protected, or package private 
(that is, no visibility modifier). Fields that are final, or annotated with @<a 
 class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html";>Retain</a>
 may even be public. In any case, this makes it easier for pages to work with 
other pages in the same package, and for subclasses to more easily access the 
fields (including parameter fields, or injections) provided by base classes. 
This fe
 ature should be used with care, as it can lead to designs that are more 
difficult to maintain.</p><h3 id="ReleaseNotes5.4-JavaScriptModules">JavaScript 
Modules</h3><p>Prior releases of Tapestry primarily organized client-side logic 
in terms of JavaScript libraries. These libraries can be declaratively imported 
into the page (either during a full-page render, or during an Ajax partial page 
update). In addition, libraries can be combined together into <em>stacks</em>, 
which (in a production application) are combined into a single virtual 
asset.</p><p>The library approach is <a  
href="javascript-rewrite-in-54.html">fundamentally limited in a number of 
ways</a>, including namespace pollution and dealing with dependencies between 
libraries. Tapestry 5.4 introduces a parallel mechanism, based on <a  
class="external-link" href="http://requirejs.org"; rel="nofollow">RequireJS</a> 
and the <a  class="external-link" 
href="https://github.com/amdjs/amdjs-api/wiki/AMD"; rel="nofollow">Asynchronous 
 Module Definition</a> as a way to speed up initial page load and organize 
client-side JavaScript in a more expressive and maintainable way.</p><h3 
id="ReleaseNotes5.4-Client-sideAPIforinvokingserver-sideevents">Client-side API 
for invoking server-side events</h3><p>Tapestry 5.4.2 adds an API which makes 
it easy for server-side events to be invoked from JavaScript. In the 
server-side, you first need to annotate the event handler methods you want 
exposed with the new&#160;<code>@PublishEvent</code> annotation. Then, in JS, 
all you need to do is to call the&#160;<code>t5/core/ajax</code>&#160;function 
with the server-side event name/type in the <code>url</code> parameter 
and&#160;with an&#160;<code>options</code> parameter containing 
an&#160;<code>element</code> property, be it null or specifying an DOM element 
to be used as the starting point for finding the event information. More 
details in the&#160;<a  href="ajax-and-zones.html">Ajax and Zones 
page</a>.</p><h2>        Sub-task
 </h2>
 <ul><li>[<a  
href="https://issues.apache.org/jira/browse/TAP5-2445";>TAP5-2445</a>] -         
Reduce usage of PerthreadMap in AbstractConditional
 </li><li>[<a  
href="https://issues.apache.org/jira/browse/TAP5-2446";>TAP5-2446</a>] -         
Use ObjectCreator instead of PerThreadValue when appropriate
@@ -599,14 +622,47 @@
 </li><li>[<a  
href="https://issues.apache.org/jira/browse/TAP5-2353";>TAP5-2353</a>] -         
It should be possible to unregister DOM event listeners
 </li></ul>
 
-</div>
+    
+<div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="release-notes-538.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Release Notes 5.3.8</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="release-notes.html" rel="parent">
+                                            <span class="aui-icon 
aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Release 
Notes</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="release-notes-541.html" rel="next">
+                <span class="title">Release Notes 5.4.1</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></div>
       </div>
 
       <div class="clearer"></div>
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: websites/production/tapestry/content/release-upgrade-faq.html
==============================================================================
--- websites/production/tapestry/content/release-upgrade-faq.html (original)
+++ websites/production/tapestry/content/release-upgrade-faq.html Mon Aug 26 
21:20:28 2019
@@ -77,21 +77,69 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 
id="ReleaseUpgradeFAQ-ReleaseUpgrade">Release Upgrade</h1><p>Main Article: <a  
href="release-upgrade-faq.html">Release Upgrade FAQ</a></p><h2 
id="ReleaseUpgradeFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1566728412688 {padding: 0px;}
-div.rbtoc1566728412688 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728412688 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="maven-support-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Maven Support FAQ</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728412688">
+    </div>
+    <div class="parent">
+                    <a  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">
+        
+    </div>
+</div><h1 id="ReleaseUpgradeFAQ-ReleaseUpgrade">Release Upgrade</h1><p>Main 
Article: <a  href="release-upgrade-faq.html">Release Upgrade FAQ</a></p><h2 
id="ReleaseUpgradeFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
+div.rbtoc1566854395964 {padding: 0px;}
+div.rbtoc1566854395964 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854395964 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854395964">
 <ul class="toc-indentation"><li><a  
href="#ReleaseUpgradeFAQ-WhydoIgetanexceptionaboutorg.apache.tapestry5.internal.services.RequestPathOptimizerafterupgradingto5.2?">Why
 do I get an exception about 
org.apache.tapestry5.internal.services.RequestPathOptimizer after upgrading to 
5.2?</a></li></ul>
-</div><h2 
id="ReleaseUpgradeFAQ-WhydoIgetanexceptionaboutorg.apache.tapestry5.internal.services.RequestPathOptimizerafterupgradingto5.2?">Why
 do I get an exception about 
org.apache.tapestry5.internal.services.RequestPathOptimizer after upgrading to 
5.2?</h2><p>Although Tapestry works very hard to keep backwards compatibility 
between releases for <em>public</em> APIs, all <em>internal</em> APIs are 
subject to change. This error is commonly due to the use of the ChenilleKit 
library, which makes use of some internal APIs. You must also upgrade your 
ChenilleKit dependency when moving from Tapestry 5.1 to 5.2 or later. See the 
<a  class="external-link" 
href="http://tapestry.markmail.org/thread/3cj2wuvl4idnpmjr"; 
rel="nofollow">complete discussion of this from the Tapestry user mailing 
list</a>.</p></div>
+</div><h2 
id="ReleaseUpgradeFAQ-WhydoIgetanexceptionaboutorg.apache.tapestry5.internal.services.RequestPathOptimizerafterupgradingto5.2?">Why
 do I get an exception about 
org.apache.tapestry5.internal.services.RequestPathOptimizer after upgrading to 
5.2?</h2><p>Although Tapestry works very hard to keep backwards compatibility 
between releases for <em>public</em> APIs, all <em>internal</em> APIs are 
subject to change. This error is commonly due to the use of the ChenilleKit 
library, which makes use of some internal APIs. You must also upgrade your 
ChenilleKit dependency when moving from Tapestry 5.1 to 5.2 or later. See the 
<a  class="external-link" 
href="http://tapestry.markmail.org/thread/3cj2wuvl4idnpmjr"; 
rel="nofollow">complete discussion of this from the Tapestry user mailing 
list</a>.    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="maven-support-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Maven Support FAQ</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  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">
+        
+    </div>
+</div></div>
       </div>
 
       <div class="clearer"></div>
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: websites/production/tapestry/content/request-processing-faq.html
==============================================================================
--- websites/production/tapestry/content/request-processing-faq.html (original)
+++ websites/production/tapestry/content/request-processing-faq.html Mon Aug 26 
21:20:28 2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 
id="RequestProcessingFAQ-RequestProcessing">Request Processing</h1><h2 
id="RequestProcessingFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1566728408227 {padding: 0px;}
-div.rbtoc1566728408227 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728408227 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="integration-with-existing-applications.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Integration with existing 
applications</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728408227">
+    </div>
+    <div class="parent">
+                    <a  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  href="limitations.html" rel="next">
+                <span class="title">Limitations</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="RequestProcessingFAQ-RequestProcessing">Request 
Processing</h1><h2 id="RequestProcessingFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
+div.rbtoc1566854393777 {padding: 0px;}
+div.rbtoc1566854393777 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854393777 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854393777">
 <ul class="toc-indentation"><li><a  
href="#RequestProcessingFAQ-HowdoIgetTapestrytonothandlearequest?">How do I get 
Tapestry to not handle a request?</a></li></ul>
 </div><h2 id="RequestProcessingFAQ-HowdoIgetTapestrytonothandlearequest?">How 
do I get Tapestry to <strong>not</strong> handle a request?</h2><p>Often, when 
<a  href="integration-with-existing-applications.html">integrating with outside 
libraries, or working with legacy code</a>, you will want Tapestry to ignore a 
request and let the normal servlet or other processing handle the 
request.</p><p>The easy way to do this is to contribute a regular expression to 
the <a  href="configuration.html">IgnoredPathsFilter service</a>, whose job is 
to exclude some requests.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">public static void 
contributeIgnoredPathsFilter(Configuration&lt;String&gt; configuration)
@@ -90,14 +113,47 @@ div.rbtoc1566728408227 li {margin-left:
     configuration.add("/dwr/.*");
   }
 </pre>
-</div></div><p>Alternately, you may contribute a <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestFilter.html";>HttpServletRequestFilter</a>
 to the <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestHandler.html";>HttpServletRequestHandler</a>
 pipeline. A filter that simply returns false from its <code>service()</code> 
method will cause Tapestry to hand off the request to the servlet container for 
normal handling. You would use this approach when a simple regular expression 
is not sufficient to identify which requests should be 
ignored.</p><p>Alternately, you can configure the Tapestry application to 
execute inside a folder to avoid conflicts. See the notes on the <a  
href="configuration.html">configuration page</a>.</p></div>
+</div></div><p>Alternately, you may contribute a <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestFilter.html";>HttpServletRequestFilter</a>
 to the <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestHandler.html";>HttpServletRequestHandler</a>
 pipeline. A filter that simply returns false from its <code>service()</code> 
method will cause Tapestry to hand off the request to the servlet container for 
normal handling. You would use this approach when a simple regular expression 
is not sufficient to identify which requests should be 
ignored.</p><p>Alternately, you can configure the Tapestry application to 
execute inside a folder to avoid conflicts. See the notes on the <a  
href="configuration.html">configuration page</a>.    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="integration-with-existing-applications.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Integration with existing 
applications</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  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  href="limitations.html" rel="next">
+                <span class="title">Limitations</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></div>
       </div>
 
       <div class="clearer"></div>
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: websites/production/tapestry/content/security-faq.html
==============================================================================
--- websites/production/tapestry/content/security-faq.html (original)
+++ websites/production/tapestry/content/security-faq.html Mon Aug 26 21:20:28 
2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 
id="SecurityFAQ-Security">Security</h1><p>Main Article: <a  
href="security.html">Security</a></p><h2 
id="SecurityFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1566728410409 {padding: 0px;}
-div.rbtoc1566728410409 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728410409 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="tapestry-inversion-of-control-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Tapestry Inversion of 
Control FAQ</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728410409">
+    </div>
+    <div class="parent">
+                    <a  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  href="integration-with-existing-applications.html" rel="next">
+                <span class="title">Integration with existing 
applications</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="SecurityFAQ-Security">Security</h1><p>Main Article: <a  
href="security.html">Security</a></p><h2 
id="SecurityFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1566854397154 {padding: 0px;}
+div.rbtoc1566854397154 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854397154 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854397154">
 <ul class="toc-indentation"><li><a  
href="#SecurityFAQ-Thebuilt-inDashboardpagearevisibleinmyproductionapplicationandIdon'twantthemtobe,whatcanIdo?">The
 built-in Dashboard page are visible in my production application and I don't 
want them to be, what can I do?</a></li></ul>
 </div><p>&#160;</p><div class="aui-label" style="float:right" title="Related 
Articles">
 
@@ -135,14 +158,47 @@ div.rbtoc1566728410409 li {margin-left:
     if (productionMode) { configuration.override("LocalhostOnly", null); }
   } 
 </pre>
-</div></div><p></p></div>
+</div></div><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="tapestry-inversion-of-control-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Tapestry Inversion of 
Control FAQ</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  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  href="integration-with-existing-applications.html" rel="next">
+                <span class="title">Integration with existing 
applications</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></div>
       </div>
 
       <div class="clearer"></div>
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: websites/production/tapestry/content/security.html
==============================================================================
--- websites/production/tapestry/content/security.html (original)
+++ websites/production/tapestry/content/security.html Mon Aug 26 21:20:28 2019
@@ -154,7 +154,17 @@
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: websites/production/tapestry/content/session-storage.html
==============================================================================
--- websites/production/tapestry/content/session-storage.html (original)
+++ websites/production/tapestry/content/session-storage.html Mon Aug 26 
21:20:28 2019
@@ -124,11 +124,11 @@
 <p>Ordinary <a  href="persistent-page-data.html">page-persistent 
fields</a></p><p>won't work for this, since persistent fields are available 
only to a specific page, not shared across multiple pages.</p><p>Tapestry 
provides two mechanisms for storing such data: Session State Objects and 
Session Attributes. When deciding between the two, it's best to use Session 
State Objects for complex objects, and Session Attributes for simple 
types.</p><h2 id="SessionStorage-SessionStateObjects">Session State 
Objects</h2><p>With a Session State Object (SSO), the value is automatically 
stored outside the page; with the default storage strategy, it is stored in the 
session. Such a value is global to all pages <em>for the same user</em>, but is 
stored separately for different users.</p><p>A field holding an SSO is marked 
with the @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/SessionState.html";>SessionState</a>
 annotation.</p><div class="
 navmenu" style="float:right; background:white; margin:3px; padding:3px">
 <div class="panel" style="border-width: 1px;"><div class="panelHeader" 
style="border-bottom-width: 1px;"><b>Contents</b></div><div 
class="panelContent">
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1566728387504 {padding: 0px;}
-div.rbtoc1566728387504 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728387504 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1566854374530 {padding: 0px;}
+div.rbtoc1566854374530 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854374530 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1566728387504">
+/*]]>*/</style><div class="toc-macro rbtoc1566854374530">
 <ul class="toc-indentation"><li>Related Articles</li></ul>
 <ul><li><a  href="#SessionStorage-SessionStateObjects">Session State 
Objects</a>
 <ul class="toc-indentation"><li><a  
href="#SessionStorage-Pitfalls">Pitfalls</a></li><li><a  
href="#SessionStorage-CheckforCreation">Check for Creation</a></li><li><a  
href="#SessionStorage-PersistenceStrategies">Persistence 
Strategies</a></li><li><a  href="#SessionStorage-ConfiguringSSOs">Configuring 
SSOs</a></li></ul>
@@ -229,7 +229,17 @@ public class MyPage {
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: websites/production/tapestry/content/specific-errors-faq.html
==============================================================================
--- websites/production/tapestry/content/specific-errors-faq.html (original)
+++ websites/production/tapestry/content/specific-errors-faq.html Mon Aug 26 
21:20:28 2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 
id="SpecificErrorsFAQ-SpecificErrors">Specific Errors</h1><h2 
id="SpecificErrorsFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1566728390515 {padding: 0px;}
-div.rbtoc1566728390515 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728390515 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="limitations.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Limitations</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728390515">
+    </div>
+    <div class="parent">
+                    <a  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  href="hibernate-support-faq.html" rel="next">
+                <span class="title">Hibernate Support FAQ</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="SpecificErrorsFAQ-SpecificErrors">Specific Errors</h1><h2 
id="SpecificErrorsFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
+div.rbtoc1566854377089 {padding: 0px;}
+div.rbtoc1566854377089 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854377089 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854377089">
 <ul class="toc-indentation"><li><a  
href="#SpecificErrorsFAQ-WhydoIgettheexception&quot;Noserviceimplementstheinterfaceorg.apache.tapestry5.internal.InternalComponentResources&quot;whentryingtousetheBeanEditFormcomponent?">Why
 do I get the exception "No service implements the interface 
org.apache.tapestry5.internal.InternalComponentResources" when trying to use 
the BeanEditForm component?</a></li><li><a  
href="#SpecificErrorsFAQ-Igetanerrorabout&quot;Pagedidnotgenerateanymarkupwhenrendered.&quot;butIhaveatemplate,whathappened?">I
 get an error about "Page did not generate any markup when rendered." but I 
have a template, what happened?</a></li><li><a  
href="#SpecificErrorsFAQ-MyapplicationfailswiththeerrorPermGen,howdoIfixthis?">My
 application fails with the error PermGen, how do I fix this?</a></li><li><a  
href="#SpecificErrorsFAQ-WhydoIsometimesgetajava.lang.NoSuchMethodErrorexceptionafterreloadingmypage?">Why
 do I sometimes get a java.lang.NoSuchMethodError exception after reloadi
 ng my page?</a></li><li><a  
href="#SpecificErrorsFAQ-Whydomylogscontain&quot;java.lang.RuntimeException:FormsrequirethattherequestmethodbePOSTandthatthet:formdataqueryparameterhavevalues&quot;?">Why
 do my logs contain "java.lang.RuntimeException: Forms require that the request 
method be POST and that the t:formdata query parameter have 
values"?</a></li></ul>
 </div><div class="aui-label" style="float:right" title="Related Articles">
 
@@ -111,7 +134,7 @@ div.rbtoc1566728390515 li {margin-left:
                 <span class="icon aui-icon content-type-page" 
title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a  href="specific-errors-faq.html">Specific Errors 
FAQ</a>
+                        <a  href="error-page-recipe.html">Error Page Recipe</a>
                 
                         
                     </div>
@@ -120,7 +143,7 @@ div.rbtoc1566728390515 li {margin-left:
                 <span class="icon aui-icon content-type-page" 
title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a  href="error-page-recipe.html">Error Page Recipe</a>
+                        <a  href="specific-errors-faq.html">Specific Errors 
FAQ</a>
                 
                         
                     </div>
@@ -164,14 +187,47 @@ div.rbtoc1566728390515 li {margin-left:
             }
         };
     }</pre>
-</div></div><p><em>Thanks to <a  class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-users/201110.mbox/%[email protected]%3E";>Lenny
 Primak</a> for the above code. A slightly less fragile approach is <a  
class="external-link" 
href="https://mail-archives.apache.org/mod_mbox/tapestry-users/201509.mbox/%3ccae26fnjevncyv52kms-kpsewwnaln9pg6lg60xzkxuhs0ut...@mail.gmail.com%3E";>described
 here</a>. When <a  class="external-link" 
href="https://issues.apache.org/jira/browse/TAP5-1733";>TAP5-1733</a> is fixed a 
much less fragile solution may be 
possible.</em></p><p>&#160;&#160;</p><p>&#160;</p></div>
+</div></div><p><em>Thanks to <a  class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-users/201110.mbox/%[email protected]%3E";>Lenny
 Primak</a> for the above code. A slightly less fragile approach is <a  
class="external-link" 
href="https://mail-archives.apache.org/mod_mbox/tapestry-users/201509.mbox/%3ccae26fnjevncyv52kms-kpsewwnaln9pg6lg60xzkxuhs0ut...@mail.gmail.com%3E";>described
 here</a>. When <a  class="external-link" 
href="https://issues.apache.org/jira/browse/TAP5-1733";>TAP5-1733</a> is fixed a 
much less fragile solution may be possible.</em></p><p>&#160;    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="limitations.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Limitations</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  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  href="hibernate-support-faq.html" rel="next">
+                <span class="title">Hibernate Support FAQ</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div>&#160;<p>&#160;</p></div>
       </div>
 
       <div class="clearer"></div>
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: 
websites/production/tapestry/content/tapestry-inversion-of-control-faq.html
==============================================================================
--- websites/production/tapestry/content/tapestry-inversion-of-control-faq.html 
(original)
+++ websites/production/tapestry/content/tapestry-inversion-of-control-faq.html 
Mon Aug 26 21:20:28 2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 
id="TapestryInversionofControlFAQ-TapestryInversionofControlContainer">Tapestry 
Inversion of Control Container</h1><p>Main article: <a  
href="tapestry-inversion-of-control-faq.html">Tapestry IoC</a></p><h2 
id="TapestryInversionofControlFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1566728393663 {padding: 0px;}
-div.rbtoc1566728393663 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728393663 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="injection-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Injection FAQ</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728393663">
+    </div>
+    <div class="parent">
+                    <a  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  href="security-faq.html" rel="next">
+                <span class="title">Security FAQ</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 
id="TapestryInversionofControlFAQ-TapestryInversionofControlContainer">Tapestry 
Inversion of Control Container</h1><p>Main article: <a  
href="tapestry-inversion-of-control-faq.html">Tapestry IoC</a></p><h2 
id="TapestryInversionofControlFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
+div.rbtoc1566854380079 {padding: 0px;}
+div.rbtoc1566854380079 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854380079 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854380079">
 <ul class="toc-indentation"><li><a  
href="#TapestryInversionofControlFAQ-WhydoIneedtodefineaninterfaceformyservices?Whycan'tIjustusetheclassitself?">Why
 do I need to define an interface for my services? Why can't I just use the 
class itself?</a></li><li><a  
href="#TapestryInversionofControlFAQ-Myservicestartsathread;howdoIknowwhentheapplicationisshuttingdown,tostopthatthread?">My
 service starts a thread; how do I know when the application is shutting down, 
to stop that thread?</a></li><li><a  
href="#TapestryInversionofControlFAQ-HowdoImakemyservicestartupwiththerestoftheapplication,ratherthanlazily?">How
 do I make my service startup with the rest of the application, rather than 
lazily?</a></li></ul>
 </div><p>&#160;</p><div class="aui-label" style="float:right" title="Related 
Articles">
 
@@ -166,14 +189,47 @@ div.rbtoc1566728393663 li {margin-left:
   }
 }
 </pre>
-</div></div><p>After Tapestry invokes the constructor of the service 
implementation, and after it performs any field injections, it invokes post 
injection methods. The methods must be public and return void. Parameters to a 
post injection method represent further injections ... in the above example, 
the RegistryShutdownHub is injected into the PostInjection method, since it is 
only used inside that one method.</p><div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>It is <strong>not</strong> 
recommended that MyServiceImpl take RegistryShutdownHub as a constructor 
parameter and register itself as a listener inside the constructor. Doing so is 
an example of <a  class="external-link" 
href="http://www.ibm.com/developerworks/java/library/j-jtp0618.html"; 
rel="nofollow">unsafe publishing</a>, an unlikely but potential 
 thread safety issue.</p></div></div><p>This same technique will work for any 
kind of resource that must be cleaned up or destroyed when the registry shuts 
down.</p><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Be careful not to invoke methods 
on any service proxy objects as they will also be shutting down with the 
Registry. A RegistryShutdownListener should not be reliant on anything outside 
of itself.</p></div></div><h3 
id="TapestryInversionofControlFAQ-HowdoImakemyservicestartupwiththerestoftheapplication,ratherthanlazily?">How
 do I make my service startup with the rest of the application, rather than 
lazily?</h3><p>Tapestry services are designed to be <em>lazy</em>; they are 
only fully realized when needed: when the first method on the service interface 
is invoked.</p><p>Sometimes a service does extra w
 ork that is desirable at application startup: examples may be registering 
message handlers with a JMS implementation, or setting up indexing. Since the 
service's constructor (or <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/PostInjection.html";>@PostInjection</a>
 methods) are not invoked until the service is realized.</p><p>The solution is 
the <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/EagerLoad.html";>@EagerLoad</a>
 annotation; service implementation classes marked with this annotation are 
loaded when the Registry is first startup, rather than lazily.</p></div>
+</div></div><p>After Tapestry invokes the constructor of the service 
implementation, and after it performs any field injections, it invokes post 
injection methods. The methods must be public and return void. Parameters to a 
post injection method represent further injections ... in the above example, 
the RegistryShutdownHub is injected into the PostInjection method, since it is 
only used inside that one method.</p><div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>It is <strong>not</strong> 
recommended that MyServiceImpl take RegistryShutdownHub as a constructor 
parameter and register itself as a listener inside the constructor. Doing so is 
an example of <a  class="external-link" 
href="http://www.ibm.com/developerworks/java/library/j-jtp0618.html"; 
rel="nofollow">unsafe publishing</a>, an unlikely but potential 
 thread safety issue.</p></div></div><p>This same technique will work for any 
kind of resource that must be cleaned up or destroyed when the registry shuts 
down.</p><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Be careful not to invoke methods 
on any service proxy objects as they will also be shutting down with the 
Registry. A RegistryShutdownListener should not be reliant on anything outside 
of itself.</p></div></div><h3 
id="TapestryInversionofControlFAQ-HowdoImakemyservicestartupwiththerestoftheapplication,ratherthanlazily?">How
 do I make my service startup with the rest of the application, rather than 
lazily?</h3><p>Tapestry services are designed to be <em>lazy</em>; they are 
only fully realized when needed: when the first method on the service interface 
is invoked.</p><p>Sometimes a service does extra w
 ork that is desirable at application startup: examples may be registering 
message handlers with a JMS implementation, or setting up indexing. Since the 
service's constructor (or <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/PostInjection.html";>@PostInjection</a>
 methods) are not invoked until the service is realized.</p><p>The solution is 
the <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/EagerLoad.html";>@EagerLoad</a>
 annotation; service implementation classes marked with this annotation are 
loaded when the Registry is first startup, rather than lazily.    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="injection-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Injection FAQ</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  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  href="security-faq.html" rel="next">
+                <span class="title">Security FAQ</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></div>
       </div>
 
       <div class="clearer"></div>
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: websites/production/tapestry/content/templating-and-markup-faq.html
==============================================================================
--- websites/production/tapestry/content/templating-and-markup-faq.html 
(original)
+++ websites/production/tapestry/content/templating-and-markup-faq.html Mon Aug 
26 21:20:28 2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 
id="TemplatingandMarkupFAQ-TemplatingandMarkup">Templating and 
Markup</h1><p>Main Article: <a  href="component-templates.html">Component 
Templates</a></p><h2 
id="TemplatingandMarkupFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1566728394208 {padding: 0px;}
-div.rbtoc1566728394208 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728394208 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="general-questions.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">General Questions</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728394208">
+    </div>
+    <div class="parent">
+                    <a  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  href="page-and-component-classes-faq.html" rel="next">
+                <span class="title">Page And Component Classes FAQ</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="TemplatingandMarkupFAQ-TemplatingandMarkup">Templating and 
Markup</h1><p>Main Article: <a  href="component-templates.html">Component 
Templates</a></p><h2 
id="TemplatingandMarkupFAQ-Contents">Contents</h2><p><style 
type="text/css">/*<![CDATA[*/
+div.rbtoc1566854377693 {padding: 0px;}
+div.rbtoc1566854377693 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854377693 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854377693">
 <ul class="toc-indentation"><li><a  
href="#TemplatingandMarkupFAQ-WhydoIgetaSAXParseExceptionwhenIuseanHTMLentity,suchas&amp;nbsp;inmytemplate?">Why
 do I get a SAXParseException when I use an HTML entity, such as &amp;nbsp; in 
my template?</a></li><li><a  
href="#TemplatingandMarkupFAQ-Whydosomeimagesinmypageshowupasbrokenlinks?">Why 
do some images in my page show up as broken links?</a></li><li><a  
href="#TemplatingandMarkupFAQ-What'sthedifferencebetweenidandt:id?">What's the 
difference between id and t:id?</a></li><li><a  
href="#TemplatingandMarkupFAQ-WhydomyimagesandstylesheetsendupwithaweirdURLslike/assets/meta/zeea17aee26bc0cae/layout/layout.css?">Why
 do my images and stylesheets end up with a weird URLs like 
/assets/meta/zeea17aee26bc0cae/layout/layout.css?</a></li><li><a  
href="#TemplatingandMarkupFAQ-HowdoIaddaCSSclasstoaTapestrycomponent?">How do I 
add a CSS class to a Tapestry component?</a></li></ul>
 </div><h2 
id="TemplatingandMarkupFAQ-WhydoIgetaSAXParseExceptionwhenIuseanHTMLentity,suchas&amp;nbsp;inmytemplate?">Why
 do I get a SAXParseException when I use an HTML entity, such as 
<code>&amp;nbsp;</code> in my template?</h2><p>Tapestry uses a standard SAX 
parser to read your templates. This means that your templates must be <em>well 
formed</em>: open and close tags must balance, attribute values must be quoted, 
and entities must be declared. The easiest way to accomplish this is to add a 
DOCTYPE to your the top of your template:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; 
gutter: false; theme: Default" data-theme="Default">&lt;!DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Strict//EN"
@@ -128,15 +151,47 @@ div.rbtoc1566728394208 li {margin-left:
     return isUrgent() ? "urgent" : null;
   }
 </pre>
-</div></div><p>When an informal parameter is bound to null, then the attribute 
is not written out at all.</p><p>You can verify which components support 
informal parameters by checking the component reference, or looking for the @<a 
 class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/SupportsInformalParameters.html";>SupportsInformalParameters</a>
 annotation in the components' source 
file.&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p></p><div
 class="display-footnotes" 
data-footnotestodisplay="${footnotesToDisplay}"></div>
-<p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p></div>
+</div></div><p>When an informal parameter is bound to null, then the attribute 
is not written out at all.</p><p>You can verify which components support 
informal parameters by checking the component reference, or looking for the @<a 
 class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/SupportsInformalParameters.html";>SupportsInformalParameters</a>
 annotation in the components' source file.    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="general-questions.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">General Questions</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  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  href="page-and-component-classes-faq.html" rel="next">
+                <span class="title">Page And Component Classes FAQ</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div>&#160;<p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p></p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p></div>
       </div>
 
       <div class="clearer"></div>
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: websites/production/tapestry/content/uploading-files.html
==============================================================================
--- websites/production/tapestry/content/uploading-files.html (original)
+++ websites/production/tapestry/content/uploading-files.html Mon Aug 26 
21:20:28 2019
@@ -125,7 +125,17 @@
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>

Modified: websites/production/tapestry/content/using-select-with-a-list.html
==============================================================================
--- websites/production/tapestry/content/using-select-with-a-list.html 
(original)
+++ websites/production/tapestry/content/using-select-with-a-list.html Mon Aug 
26 21:20:28 2019
@@ -77,7 +77,30 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 
id="UsingSelectWithaList-UsingSelectWithaList">Using Select With a 
List</h1><p>The documentation for the <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Select.html";>Select
 Component</a> and the <a  href="tapestry-tutorial.html">Tapestry Tutorial</a> 
provide simplistic examples of populating a drop-down menu (as the (X)HTML 
<em>Select</em> element) using comma-delimited strings and enums. However, most 
real-world Tapestry applications need to populate such menus using values from 
a database, commonly in the form of java.util.List objects. Doing so generally 
requires a <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SelectModel.html";>SelectModel</a>
 and a <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValueEncoder.html";>ValueEncoder</a>
 bound to the Select component with its 
 "model" and "encoder" parameters:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="meta-programming-page-content.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-left">Previous</span>
+                                <span class="title">Meta-Programming Page 
Content</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  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  href="ioc-cookbook.html" rel="next">
+                <span class="title">IoC cookbook</span>
+                                    <span class="aui-icon aui-icon-small 
atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="UsingSelectWithaList-UsingSelectWithaList">Using Select With a 
List</h1><p>The documentation for the <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Select.html";>Select
 Component</a> and the <a  href="tapestry-tutorial.html">Tapestry Tutorial</a> 
provide simplistic examples of populating a drop-down menu (as the (X)HTML 
<em>Select</em> element) using comma-delimited strings and enums. However, most 
real-world Tapestry applications need to populate such menus using values from 
a database, commonly in the form of java.util.List objects. Doing so generally 
requires a <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SelectModel.html";>SelectModel</a>
 and a <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValueEncoder.html";>ValueEncoder</a>
 bound to the Select component with its "model" and "encoder" parameters:</p><
 div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;t:select 
t:id="colorMenu" value="selectedColor" model="ColorSelectModel" 
encoder="colorEncoder" /&gt;
 </pre>
 </div></div><p>In the above example, ColorSelectModel must be of type 
SelectModel, or anything that Tapestry knows how to <a  
href="parameter-type-coercion.html">coerce</a> into a SelectModel, such as a 
List or a Map or a "value=label,value=label,..." delimited string, or anything 
Tapestry knows how to coerce into a List or Map, such as an Array or a 
comma-delimited String.</p><h2 
id="UsingSelectWithaList-SelectModel">SelectModel</h2><p></p><div 
class="navmenu" style="float:right; background:#eee; margin:3px; padding:0 1em">
@@ -187,7 +210,17 @@ public String toString() {
     
     <div id="footer">
             <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.<br clear="none">
-</p><p></p><div class="aui-message aui-message-error"><p 
class="title"><strong>Error rendering macro 'html'</strong></p><p>Your 
Confluence administrator has disallowed the use of Javascript in the HTML 
macro.  This setting can be changed using  HTML for Confluence Configuration.  
Please see your administrator for details.</p></div><p></p></div>
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
     </div>
 
     <div id="comments_thread"></div>


Reply via email to