Author: buildbot
Date: Sat Feb  3 18:21:36 2018
New Revision: 1024785

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/about.html
    websites/production/tapestry/content/ajax-components-faq.html
    
websites/production/tapestry/content/application-module-class-cheat-sheet.html
    websites/production/tapestry/content/beaneditform-faq.html
    websites/production/tapestry/content/building-tapestry-from-source.html
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/component-cheat-sheet.html
    websites/production/tapestry/content/component-events-faq.html
    websites/production/tapestry/content/confluence-site-setup.html
    websites/production/tapestry/content/default-parameter.html
    websites/production/tapestry/content/developer-bible.html
    websites/production/tapestry/content/enum-parameter-recipe.html
    websites/production/tapestry/content/error-page-recipe.html
    websites/production/tapestry/content/extending-the-if-component.html
    websites/production/tapestry/content/forms-and-form-components-faq.html
    websites/production/tapestry/content/general-questions.html
    websites/production/tapestry/content/google-app-engine.html
    websites/production/tapestry/content/hibernate-support-faq.html
    websites/production/tapestry/content/how-to-upgrade.html
    websites/production/tapestry/content/injection-faq.html
    
websites/production/tapestry/content/integration-with-existing-applications.html
    
websites/production/tapestry/content/ioc-cookbook-basic-services-and-injection.html
    
websites/production/tapestry/content/ioc-cookbook-overriding-ioc-services.html
    websites/production/tapestry/content/ioc-cookbook-patterns.html
    
websites/production/tapestry/content/ioc-cookbook-service-configurations.html
    websites/production/tapestry/content/ioc-cookbook.html
    websites/production/tapestry/content/javascript-faq.html
    websites/production/tapestry/content/javascript-rewrite-in-54.html
    websites/production/tapestry/content/limitations.html
    websites/production/tapestry/content/maven-support-faq.html
    websites/production/tapestry/content/meta-programming-page-content.html
    websites/production/tapestry/content/overriding-exception-reporting.html
    websites/production/tapestry/content/page-and-component-classes-faq.html
    websites/production/tapestry/content/performance-and-clustering.html
    websites/production/tapestry/content/release-notes-50.html
    websites/production/tapestry/content/release-notes-51.html
    websites/production/tapestry/content/release-notes-52.html
    websites/production/tapestry/content/release-notes-53.html
    websites/production/tapestry/content/release-notes-531.html
    websites/production/tapestry/content/release-notes-532.html
    websites/production/tapestry/content/release-notes-533.html
    websites/production/tapestry/content/release-notes-534.html
    websites/production/tapestry/content/release-notes-535.html
    websites/production/tapestry/content/release-notes-536.html
    websites/production/tapestry/content/release-notes-537.html
    websites/production/tapestry/content/release-notes-538.html
    websites/production/tapestry/content/release-notes-54.html
    websites/production/tapestry/content/release-notes-541.html
    websites/production/tapestry/content/release-notes-542.html
    websites/production/tapestry/content/release-notes-543.html
    websites/production/tapestry/content/release-process.html
    websites/production/tapestry/content/release-upgrade-faq.html
    websites/production/tapestry/content/request-processing-faq.html
    websites/production/tapestry/content/security-faq.html
    websites/production/tapestry/content/since-and-deprecated-user-macros.html
    websites/production/tapestry/content/specific-errors-faq.html
    websites/production/tapestry/content/support.html
    websites/production/tapestry/content/supporting-informal-parameters.html
    websites/production/tapestry/content/switching-cases.html
    websites/production/tapestry/content/tapestry-for-jsf-users.html
    websites/production/tapestry/content/tapestry-inversion-of-control-faq.html
    websites/production/tapestry/content/templating-and-markup-faq.html
    websites/production/tapestry/content/the-tapestry-jail.html
    websites/production/tapestry/content/using-select-with-a-list.html
    websites/production/tapestry/content/version-numbers.html

Modified: websites/production/tapestry/content/about.html
==============================================================================
--- websites/production/tapestry/content/about.html (original)
+++ websites/production/tapestry/content/about.html Sat Feb  3 18:21:36 2018
@@ -139,7 +139,7 @@
 
 <h2 id="About-TrainingandSupport">Training and Support</h2>
 
-Apache Tapestry is an open source project and as such, supported by the 
community. Even if you are looking for commercial support, your best bet for 
support is to first subscribe to Apache Tapestry user mailing list and ask 
there. Read more about how to <a  href="community.html">get involved</a>.<h3 
id="About-CommercialTrainingandSupport">Commercial Training and 
Support</h3><p>Training on Tapestry and Support is available directly from the 
source: the Tapestry project committers:</p><ul><li><a  class="external-link" 
href="http://www.arsmachina.com.br/services"; rel="nofollow">Thiago H. de Paula 
Figueriredo</a>: Provides training and support on Tapestry and related 
technologies including Spring and Hibernate</li></ul><h3 
id="About-CommunitySupport">Community Support</h3><p>Like all Apache projects, 
Tapestry uses mailing lists for most communication. You can subscribe by 
sending e-mail to the addresses below. For each list, there are subscribe, 
unsubscribe, and archive links. All Tapes
 try users are welcome to subscribe to any of these lists, however questions on 
how to <em>use</em> Tapestry in your application are best sent to the 
<em>user</em> mailing list.</p><p>Please note that the Nabble archives are set 
to read-only and don't allow for posting or answering using Nabble's web 
interface. You have to subscribe to the mailing list in order to post.</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Subscribe</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Unsubscribe</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Apache Archive</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Nabble Archive</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>MarkMail Archive</p></th></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Tapestry User List</p></th><td colspan="1" 
rowspan="1" clas
 s="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Subscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Unsubscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-users/";>mail-archives.apache.org</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.1045711.n5.nabble.com/Tapestry-User-f2375125.html"; 
rel="nofollow">www.nabble.com</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.users"; 
rel="nofollow">tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Tapestry Developer List</p></th><td 
colspan="1" rowspan=
 "1" class="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Subscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Unsubscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-dev/";>mail-archives.apache.org</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.1045711.n5.nabble.com/Tapestry-Dev-f2438278.html"; 
rel="nofollow">www.nabble.com</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.dev"; 
rel="nofollow">tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Tapestry Commits List</p></th><td 
colspan="1" rowspan="1"
  class="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Subscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Unsubscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-commits/";>mail-archives.apache.org</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.commits";
 rel="nofollow">tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Search Multiple Lists</p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rows
 pan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.1045711.n5.nabble.com/"; 
rel="nofollow">www.nabble.com</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.markmail.org/search/?q=#query:+page:1+state:facets"; 
rel="nofollow">tapestry.markmail.org</a></p></td></tr></tbody></table></div></div>
+Apache Tapestry is an open source project and as such, supported by the 
community. Even if you are looking for commercial support, your best bet for 
support is to first subscribe to Apache Tapestry user mailing list and ask 
there. Read more about how to <a  href="support.html">get involved</a>.<h3 
id="About-CommercialTrainingandSupport">Commercial Training and 
Support</h3><p>Training on Tapestry and Support is available directly from the 
source: the Tapestry project committers:</p><ul><li><a  class="external-link" 
href="http://www.arsmachina.com.br/services"; rel="nofollow">Thiago H. de Paula 
Figueriredo</a>: Provides training and support on Tapestry and related 
technologies including Spring and Hibernate</li></ul><h3 
id="About-CommunitySupport">Community Support</h3><p>Like all Apache projects, 
Tapestry uses mailing lists for most communication. You can subscribe by 
sending e-mail to the addresses below. For each list, there are subscribe, 
unsubscribe, and archive links. All Tapestr
 y users are welcome to subscribe to any of these lists, however questions on 
how to <em>use</em> Tapestry in your application are best sent to the 
<em>user</em> mailing list.</p><p>Please note that the Nabble archives are set 
to read-only and don't allow for posting or answering using Nabble's web 
interface. You have to subscribe to the mailing list in order to post.</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Subscribe</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Unsubscribe</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Apache Archive</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Nabble Archive</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>MarkMail Archive</p></th></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Tapestry User List</p></th><td colspan="1" 
rowspan="1" class=
 "confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Subscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Unsubscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-users/";>mail-archives.apache.org</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.1045711.n5.nabble.com/Tapestry-User-f2375125.html"; 
rel="nofollow">www.nabble.com</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.users"; 
rel="nofollow">tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Tapestry Developer List</p></th><td 
colspan="1" rowspan="1
 " class="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Subscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Unsubscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-dev/";>mail-archives.apache.org</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.1045711.n5.nabble.com/Tapestry-Dev-f2438278.html"; 
rel="nofollow">www.nabble.com</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.dev"; 
rel="nofollow">tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Tapestry Commits List</p></th><td 
colspan="1" rowspan="1" c
 lass="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Subscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Unsubscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-commits/";>mail-archives.apache.org</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.commits";
 rel="nofollow">tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Search Multiple Lists</p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspa
 n="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.1045711.n5.nabble.com/"; 
rel="nofollow">www.nabble.com</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a  class="external-link" 
href="http://tapestry.markmail.org/search/?q=#query:+page:1+state:facets"; 
rel="nofollow">tapestry.markmail.org</a></p></td></tr></tbody></table></div></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/ajax-components-faq.html
==============================================================================
--- websites/production/tapestry/content/ajax-components-faq.html (original)
+++ websites/production/tapestry/content/ajax-components-faq.html Sat Feb  3 
18:21:36 2018
@@ -27,6 +27,16 @@
       </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css" />
 
+          <link href='/resources/highlighter/styles/shCoreCXF.css' 
rel='stylesheet' type='text/css' />
+    <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' 
type='text/css' />
+    <script src='/resources/highlighter/scripts/shCore.js' 
type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushJava.js' 
type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushXml.js' 
type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushPlain.js' 
type='text/javascript'></script>
+        <script>
+      SyntaxHighlighter.defaults['toolbar'] = false;
+      SyntaxHighlighter.all();
+    </script>
   
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -67,7 +77,8 @@
       </div>
 
       <div id="content">
-                <div 
id="ConfluenceContent"><p><plain-text-body>{scrollbar}</plain-text-body></p><h2 
id="AjaxComponentsFAQ-AjaxComponents">Ajax Components</h2><p>Main article: <a  
href="ajax-and-zones.html">Ajax and Zones</a></p><h3 
id="AjaxComponentsFAQ-DoIhavetospecifybothidandt:idforZonecomponents?">Do I 
have to specify both <code>id</code> and <code>t:id</code> for Zone 
components?</h3><p>The examples for the Zone component (in the Component 
Reference) consistently specify both <code>id</code> and <code>t:id</code> and 
this is probably a good idea.</p><p>Generally speaking, if you don't specify 
the client-side id (the <code>id</code> attribute), it will be the same as the 
Tapestry component id (<code>t:id</code>).</p><p>However, there are any number 
of exceptions to this rule. The Zone may be rendering inside a Loop (in which 
case, each rendering will have a unique client side id). The Zone may be 
rendering as part of a partial page render, in which case, a random unique id 
is i
 nserted into the id. There are other examples where Tapestry component ids in 
nested components may also clash.</p><p>The point is, to be sure, specify the 
exact client id. This will be the value for the <code>zone</code> parameter of 
the triggering component (such as a Form, PageLink, ActionLink, etc.).</p><h3 
id="AjaxComponentsFAQ-HowdoIupdatethecontentofaZonefromaneventhandlermethod?">How
 do I update the content of a Zone from an event handler method?</h3><p>When a 
client-side link or form triggers an update, the return value from the event 
handler method is used to construct a partial page response; this partial page 
response includes markup content that is used to update the Zone's client-side 
<code>&lt;div&gt;</code> element.</p><p>Where does that content come from? You 
inject it into your page.</p><parameter 
ac:name="controls">true</parameter><parameter 
ac:name="language">xml</parameter><plain-text-body>&lt;t:zone id="search" 
t:id="searchZone"&gt;
+                <div id="ConfluenceContent"><h2 
id="AjaxComponentsFAQ-AjaxComponents">Ajax Components</h2><p>Main article: <a  
href="ajax-components-faq.html">Ajax Components FAQ</a></p><h3 
id="AjaxComponentsFAQ-DoIhavetospecifybothidandt:idforZonecomponents?">Do I 
have to specify both <code>id</code> and <code>t:id</code> for Zone 
components?</h3><p>The examples for the Zone component (in the Component 
Reference) consistently specify both <code>id</code> and <code>t:id</code> and 
this is probably a good idea.</p><p>Generally speaking, if you don't specify 
the client-side id (the <code>id</code> attribute), it will be the same as the 
Tapestry component id (<code>t:id</code>).</p><p>However, there are any number 
of exceptions to this rule. The Zone may be rendering inside a Loop (in which 
case, each rendering will have a unique client side id). The Zone may be 
rendering as part of a partial page render, in which case, a random unique id 
is inserted into the id. There are other exampl
 es where Tapestry component ids in nested components may also clash.</p><p>The 
point is, to be sure, specify the exact client id. This will be the value for 
the <code>zone</code> parameter of the triggering component (such as a Form, 
PageLink, ActionLink, etc.).</p><h3 
id="AjaxComponentsFAQ-HowdoIupdatethecontentofaZonefromaneventhandlermethod?">How
 do I update the content of a Zone from an event handler method?</h3><p>When a 
client-side link or form triggers an update, the return value from the event 
handler method is used to construct a partial page response; this partial page 
response includes markup content that is used to update the Zone's client-side 
<code>&lt;div&gt;</code> element.</p><p>Where does that content come from? You 
inject it into your page.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;t:zone id="search" t:id="searchZone"&gt;
   &lt;t:form t:id="searchForm" zone="searchZone"&gt;
     &lt;t:textfield t:id="query" size="20"/&gt;
     &lt;input type="submit" value="Search"/&gt;
@@ -79,7 +90,9 @@
     &lt;li t:type="loop" source="searchHits" 
value="searchHit"&gt;${searchHit}&lt;/li&gt;
   &lt;/ul&gt;
 &lt;/t:block&gt;
-</plain-text-body><parameter ac:name="controls">true</parameter><parameter 
ac:name="language">java</parameter><plain-text-body>  @Inject
+</pre>
+</div></div><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">  @Inject
   private Block searchResults;
 
   Object onSuccessFromSearchForm()
@@ -88,14 +101,18 @@
 
     return searchResults;
   }
-</plain-text-body><p>So, when the search form is submitted, the resulting 
search hits are collected. In the same request, the searchResults block is 
rendered, package, and sent to the client. The form inside the client-side Zone 
<code>&lt;div&gt;</code> is replaced with the list of hits.</p><p>In many 
cases, you just want to re-render the Zone itself, to display updated content. 
In that case, you don't need a separate <code>&lt;t:block&gt;</code>, instead 
you can use @InjectComponent to inject the Zone object itself, and return the 
Zone's body:</p><parameter ac:name="controls">true</parameter><parameter 
ac:name="language">java</parameter><plain-text-body>  @InjectComponent
+</pre>
+</div></div><p>So, when the search form is submitted, the resulting search 
hits are collected. In the same request, the searchResults block is rendered, 
package, and sent to the client. The form inside the client-side Zone 
<code>&lt;div&gt;</code> is replaced with the list of hits.</p><p>In many 
cases, you just want to re-render the Zone itself, to display updated content. 
In that case, you don't need a separate <code>&lt;t:block&gt;</code>, instead 
you can use @InjectComponent to inject the Zone object itself, and return the 
Zone's body:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">  @InjectComponent
   private Zone statusZone;
 
   Object onActionFromUpdateStatus()
   {
     return statusZone.getBody();
   }
-</plain-text-body><h3 
id="AjaxComponentsFAQ-HowtoIupdatemultiplezonesinasingleeventhandler?">How to I 
update multiple zones in a single event handler?</h3><p>To do this, you must 
know, on the server, the client ids of each Zone. That's one of the reasons 
that you will generally set the Zone's client id (via the Zone's id parameter), 
rather than let Tapestry assign a client id for you.</p><p>From the event 
handler method, instead of returning a Block or a Component, return a 
multi-zone update:</p><p>&#160;</p><parameter 
ac:name="controls">true</parameter><parameter 
ac:name="language">java</parameter><parameter ac:name="title">Multiple Zone 
Update (5.3+)</parameter><plain-text-body>  @Inject
+</pre>
+</div></div><h3 
id="AjaxComponentsFAQ-HowtoIupdatemultiplezonesinasingleeventhandler?">How to I 
update multiple zones in a single event handler?</h3><p>To do this, you must 
know, on the server, the client ids of each Zone. That's one of the reasons 
that you will generally set the Zone's client id (via the Zone's id parameter), 
rather than let Tapestry assign a client id for you.</p><p>From the event 
handler method, instead of returning a Block or a Component, return a 
multi-zone update:</p><p>&#160;</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Multiple Zone Update (5.3+)</b></div><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">  @Inject
   private Block searchResults;
 
   @Inject
@@ -112,10 +129,17 @@
 
     ajaxResponseRenderer.addRender("results", 
searchResults).addRender("status", statusBlock);
   }
-</plain-text-body><p>Note: Users of Tapestry 5.2 and earlier (which didn't 
support AjaxResponseRenderer) must replace that last line with: <code>return 
new MultiZoneUpdate("results", searchResults).add("status", 
statusBlock);</code></p><p>AjaxResponseRenderer adds other useful commands as 
well. It also has the advantage that a simple return value can be returned to 
render content for the Zone that triggered the request.</p><h3 
id="AjaxComponentsFAQ-What'sthatweirdnumberinthemiddleoftheclientidsafteraZoneisupdated?">What's
 that weird number in the middle of the client ids after a Zone is 
updated?</h3><p>You might start with markup in your template for a component 
such as a TextField:</p><parameter 
ac:name="controls">true</parameter><parameter 
ac:name="language">xml</parameter><plain-text-body>  &lt;t:textfield 
t:id="firstName"/&gt;
-</plain-text-body><p>When the component initially renders as part of a full 
page render, you get a sensible bit of markup:</p><parameter 
ac:name="controls">true</parameter><parameter 
ac:name="language">xml</parameter><plain-text-body>  &lt;input id="firstName" 
name="firstName" type="text"&gt;
-</plain-text-body><p>But when the form is inside a Zone and rendered as part 
of a zone update, the ids get weird:</p><parameter 
ac:name="controls">true</parameter><parameter 
ac:name="language">xml</parameter><plain-text-body>   &lt;input 
id="firstName_12a820cc40e" name="firstName" type="text"&gt;
-</plain-text-body><p>What's happening here is that Tapestry is working to 
prevent unwanted id clashes as part of the page update. In an HTML document, 
each <code>id</code> is expected to be unique; most JavaScript is keyed off of 
the <code>id</code> field, for instance.</p><p>In a full page render, 
components don't just use their component id (<code>t:id</code>) as their 
client id; instead they use the <code>JavaScriptSupport</code> environmental to 
allocate a unique id. When there's no loops or conflicts, the client id matches 
the component id.</p><p>When the component is inside a loop, a suffix is 
appended: <code>firstName</code>, <code>firstName_0</code>, 
<code>firstName_1</code>, etc.</p><p>When the component is rendered as part of 
an Ajax partial page update, the rules are different. Since Tapestry doesn't 
know what content has been rendered onto the page previously, it can't use its 
normal tricks to ensure that ids are unique.</p><p>Instead, Tapestry creates a 
random-ish uniqu
 e id suffix, such as "12a820cc40e" in the example; this suffix is appended to 
all allocated ids to ensure that they do not conflict with previously rendered 
ids.</p><h3 
id="AjaxComponentsFAQ-WhydoIsometimesgettheexception&quot;Therenderedcontentdidnotincludeanyelementsthatallowforthepositioningofthehiddenformfield'selement.&quot;whenrenderinganemptyZone?">Why
 do I sometimes get the exception "The rendered content did not include any 
elements that allow for the positioning of the hidden form field's element." 
when rendering an empty Zone?</h3><p>As part of Tapestry's form processing, it 
must write a hidden input element with information needed when the form is 
submitted. Since the content of a Zone may be changed or removed, a hidden 
field is created just for the Zone, separate from the rest of the enclosing 
form.</p><p>At the same time, Tapestry wants to position the &lt;input&gt; 
field in a valid location, and HTML defines some constraints for that; an input 
field must appear insid
 e a &lt;p&gt; or &lt;div&gt; element. If your zone is initially empty, there's 
no place to put the hidden element, and Tapestry will complain.</p><p>The 
solution is simple: just add a &lt;div&gt; element to the body of the zone. 
This<span style="line-height: 1.4285715;"> ensures that there's a place for the 
hidden input field. &#160;An empty &lt;div&gt; element (even one containing a 
hidden form field) will not affect page 
layout.</span><plain-text-body>{scrollbar}</plain-text-body></p></div>
+</pre>
+</div></div><p>Note: Users of Tapestry 5.2 and earlier (which didn't support 
AjaxResponseRenderer) must replace that last line with: <code>return new 
MultiZoneUpdate("results", searchResults).add("status", 
statusBlock);</code></p><p>AjaxResponseRenderer adds other useful commands as 
well. It also has the advantage that a simple return value can be returned to 
render content for the Zone that triggered the request.</p><h3 
id="AjaxComponentsFAQ-What'sthatweirdnumberinthemiddleoftheclientidsafteraZoneisupdated?">What's
 that weird number in the middle of the client ids after a Zone is 
updated?</h3><p>You might start with markup in your template for a component 
such as a TextField:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">  &lt;t:textfield t:id="firstName"/&gt;
+</pre>
+</div></div><p>When the component initially renders as part of a full page 
render, you get a sensible bit of markup:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">  &lt;input id="firstName" name="firstName" 
type="text"&gt;
+</pre>
+</div></div><p>But when the form is inside a Zone and rendered as part of a 
zone update, the ids get weird:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;input id="firstName_12a820cc40e" 
name="firstName" type="text"&gt;
+</pre>
+</div></div><p>What's happening here is that Tapestry is working to prevent 
unwanted id clashes as part of the page update. In an HTML document, each 
<code>id</code> is expected to be unique; most JavaScript is keyed off of the 
<code>id</code> field, for instance.</p><p>In a full page render, components 
don't just use their component id (<code>t:id</code>) as their client id; 
instead they use the <code>JavaScriptSupport</code> environmental to allocate a 
unique id. When there's no loops or conflicts, the client id matches the 
component id.</p><p>When the component is inside a loop, a suffix is appended: 
<code>firstName</code>, <code>firstName_0</code>, <code>firstName_1</code>, 
etc.</p><p>When the component is rendered as part of an Ajax partial page 
update, the rules are different. Since Tapestry doesn't know what content has 
been rendered onto the page previously, it can't use its normal tricks to 
ensure that ids are unique.</p><p>Instead, Tapestry creates a random-ish unique 
id s
 uffix, such as "12a820cc40e" in the example; this suffix is appended to all 
allocated ids to ensure that they do not conflict with previously rendered 
ids.</p><h3 
id="AjaxComponentsFAQ-WhydoIsometimesgettheexception&quot;Therenderedcontentdidnotincludeanyelementsthatallowforthepositioningofthehiddenformfield'selement.&quot;whenrenderinganemptyZone?">Why
 do I sometimes get the exception "The rendered content did not include any 
elements that allow for the positioning of the hidden form field's element." 
when rendering an empty Zone?</h3><p>As part of Tapestry's form processing, it 
must write a hidden input element with information needed when the form is 
submitted. Since the content of a Zone may be changed or removed, a hidden 
field is created just for the Zone, separate from the rest of the enclosing 
form.</p><p>At the same time, Tapestry wants to position the &lt;input&gt; 
field in a valid location, and HTML defines some constraints for that; an input 
field must appear inside a &l
 t;p&gt; or &lt;div&gt; element. If your zone is initially empty, there's no 
place to put the hidden element, and Tapestry will complain.</p><p>The solution 
is simple: just add a &lt;div&gt; element to the body of the zone. This<span> 
ensures that there's a place for the hidden input field. &#160;An empty 
&lt;div&gt; element (even one containing a hidden form field) will not affect 
page layout.</span></p></div>
       </div>
 
       <div class="clearer"></div>

Modified: 
websites/production/tapestry/content/application-module-class-cheat-sheet.html
==============================================================================
--- 
websites/production/tapestry/content/application-module-class-cheat-sheet.html 
(original)
+++ 
websites/production/tapestry/content/application-module-class-cheat-sheet.html 
Sat Feb  3 18:21:36 2018
@@ -44,13 +44,26 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div>
+
+</div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
- <input type="text" name="q"> 
- <input type="submit" value="Search"> 
-</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Application Module Class Cheat Sheet</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Application Module Class Cheat Sheet</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -63,11 +76,11 @@
 
       <div id="content">
                 <div id="ConfluenceContent"><p>&#160;</p><p>The 
<strong>Application Module</strong> class is a simple Java class used to 
configure Tapestry. A system of annotations and naming conventions allows 
Tapestry to determine what services are provided by the module to your 
application. This is the place where you bind your custom implementation of 
services, contribute to, decorate and override existing services.</p><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1478607610534 {padding: 0px;}
-div.rbtoc1478607610534 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1478607610534 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1517682041745 {padding: 0px;}
+div.rbtoc1517682041745 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1517682041745 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1478607610534">
+/*]]>*/</style></p><div class="toc-macro rbtoc1517682041745">
 <ul class="toc-indentation"><li>Related Articles</li></ul>
 <ul><li><a  href="#ApplicationModuleClassCheatSheet-Namingconventions">Naming 
conventions</a>
 <ul class="toc-indentation"><li><a  
href="#ApplicationModuleClassCheatSheet-Thebindmethod">The bind 
method</a></li><li><a  
href="#ApplicationModuleClassCheatSheet-Servicebuildermethods">Service builder 
methods</a></li><li><a  
href="#ApplicationModuleClassCheatSheet-Contributemethods">Contribute 
methods</a>
@@ -78,43 +91,76 @@ div.rbtoc1478607610534 li {margin-left:
 </li><li><a  
href="#ApplicationModuleClassCheatSheet-Loadservicesonregistrystartup">Load 
services on registry startup</a></li><li><a  
href="#ApplicationModuleClassCheatSheet-Defineservicescope">Define service 
scope</a></li><li><a  
href="#ApplicationModuleClassCheatSheet-Disambiguateservices">Disambiguate 
services</a>
 <ul class="toc-indentation"><li><a  
href="#ApplicationModuleClassCheatSheet-WithserviceId">With service 
Id</a></li><li><a  href="#ApplicationModuleClassCheatSheet-WithMarkers">With 
Markers</a></li></ul>
 </li><li><a  
href="#ApplicationModuleClassCheatSheet-Overrideexistingservices">Override 
existing services</a></li></ul>
-</div><div class="aui-label" style="float:right" title="Related 
Articles"><h3>Related Articles</h3><ul class="content-by-label"><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="application-module-class-cheat-sheet.html">Application Module 
Class Cheat Sheet</a> 
-  </div> </li><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="ioc-cookbook-service-configurations.html">IoC cookbook - Service 
Configurations</a> 
-  </div> </li><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="symbols.html">Symbols</a> 
-  </div> </li><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="tapestry-ioc-configuration.html">Tapestry IoC Configuration</a> 
-  </div> </li><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="response-compression.html">Response Compression</a> 
-  </div> </li><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="configuration.html">Configuration</a> 
-  </div> </li></ul></div><p>For complete documentation, you should refer to 
the <a  href="defining-tapestry-ioc-services.html">IOC Service 
guideline</a>.</p><h2 
id="ApplicationModuleClassCheatSheet-Namingconventions">Naming 
conventions</h2><p>The use of naming conventions implies that every public 
method of your module class should be meaningful to Tapestry: it either should 
follow the naming conventions, or should have an appropriate annotation. Any 
extra public methods will result in startup exceptions ... this helps identify 
methods names that have typos.</p><p>Methods should be <strong>public</strong> 
and, preferably <strong>static</strong>.</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>Allowing for non-static methods 
may have been a design error, a kind of premature optimization. The thinking 
was t
 hat the module could have common dependencies that it could then easily access 
when building services. This was partly about runtime efficiency but mostly 
about reducing redundancy in the various service building, contribution, and 
decorating methods; the ServiceBinder came later, and was a better solution 
(trading runtime efficiency for developer ease of use).</p></div></div><h3 
id="ApplicationModuleClassCheatSheet-Thebindmethod">The bind 
method</h3><p>Every module may have an optional, static bind() method which is 
passed a ServiceBinder. By using the ServiceBinder, you will let Tapestry 
<em>autobuild</em> your services. Autobuilding is the <strong>preferred 
way</strong> to instantiate your services.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div><div class="aui-label" style="float:right" title="Related Articles">
+
+
+
+
+
+
+
+
+<h3>Related Articles</h3>
+
+<ul class="content-by-label"><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  
href="application-module-class-cheat-sheet.html">Application Module Class Cheat 
Sheet</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  
href="ioc-cookbook-service-configurations.html">IoC cookbook - Service 
Configurations</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  href="symbols.html">Symbols</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  href="tapestry-ioc-configuration.html">Tapestry 
IoC Configuration</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  href="response-compression.html">Response 
Compression</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  href="configuration.html">Configuration</a>
+                
+                        
+                    </div>
+    </li></ul>
+</div>
+
+
+<p>For complete documentation, you should refer to the <a  
href="application-module-class-cheat-sheet.html">IOC Service 
guideline</a>.</p><h2 
id="ApplicationModuleClassCheatSheet-Namingconventions">Naming 
conventions</h2><p>The use of naming conventions implies that every public 
method of your module class should be meaningful to Tapestry: it either should 
follow the naming conventions, or should have an appropriate annotation. Any 
extra public methods will result in startup exceptions ... this helps identify 
methods names that have typos.</p><p>Methods should be <strong>public</strong> 
and, preferably <strong>static</strong>.</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>Allowing for non-static methods 
may have been a design error, a kind of premature optimization. The thinking 
was that the module coul
 d have common dependencies that it could then easily access when building 
services. This was partly about runtime efficiency but mostly about reducing 
redundancy in the various service building, contribution, and decorating 
methods; the ServiceBinder came later, and was a better solution (trading 
runtime efficiency for developer ease of use).</p></div></div><h3 
id="ApplicationModuleClassCheatSheet-Thebindmethod">The bind 
method</h3><p>Every module may have an optional, static bind() method which is 
passed a ServiceBinder. By using the ServiceBinder, you will let Tapestry 
<em>autobuild</em> your services. Autobuilding is the <strong>preferred 
way</strong> to instantiate your services.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package org.example.myapp.services;
 
 import org.apache.tapestry5.ioc.ServiceBinder;
@@ -174,7 +220,7 @@ public class MyAppModule
     configuration.add(myTuple);
 }
 </pre>
-</div></div><h3 id="ApplicationModuleClassCheatSheet-Decoratemethods">Decorate 
methods</h3><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Annotations">Annotations</h2><p>Main 
Article: <a  href="annotations.html">Annotations</a></p><p>Tapestry 5.2 comes 
with a set of annotations to better your understanding of module 
classes.</p><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-parameter-typesParametertypes"><span 
class="confluence-anchor-link" 
id="ApplicationModuleClassCheatSheet-parameter-types"></span>Parameter 
types</h2><p>These methods may have any number of parameters, tapestry will try 
to resolve each parameter value as a configuration element or a registry 
element.</p><h3 
id="ApplicationModuleClassCheatSheet-Configurationparametertypes">Configuration 
parameter types</h3><p><em>content under development</em></p><h3 
id="ApplicationModuleClassCheatSheet-Linktoservices">Link to 
services</h3><p><em>content under de
 velopment</em></p><h3 
id="ApplicationModuleClassCheatSheet-Symbols">Symbols</h3><p>Main Article: <a  
href="symbols.html">Symbols</a></p><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Loadservicesonregistrystartup">Load 
services on registry startup</h2><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Defineservicescope">Define service 
scope</h2><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Disambiguateservices">Disambiguate 
services</h2><p><em>content under development</em></p><h3 
id="ApplicationModuleClassCheatSheet-WithserviceId">With service 
Id</h3><p><em>content under development</em></p><h3 
id="ApplicationModuleClassCheatSheet-WithMarkers">With 
Markers</h3><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Overrideexistingservices">Override 
existing services</h2><p><em>content under 
development</em></p><p>&#160;</p><p></p></div>
+</div></div><h3 id="ApplicationModuleClassCheatSheet-Decoratemethods">Decorate 
methods</h3><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Annotations">Annotations</h2><p>Main 
Article: <a  href="application-module-class-cheat-sheet.html">Application 
Module Class Cheat Sheet</a></p><p>Tapestry 5.2 comes with a set of annotations 
to better your understanding of module classes.</p><p><em>content under 
development</em></p><h2 
id="ApplicationModuleClassCheatSheet-parameter-typesParametertypes"><span 
class="confluence-anchor-link" 
id="ApplicationModuleClassCheatSheet-parameter-types"></span>Parameter 
types</h2><p>These methods may have any number of parameters, tapestry will try 
to resolve each parameter value as a configuration element or a registry 
element.</p><h3 
id="ApplicationModuleClassCheatSheet-Configurationparametertypes">Configuration 
parameter types</h3><p><em>content under development</em></p><h3 
id="ApplicationModuleClassCheatSheet-Linktoserv
 ices">Link to services</h3><p><em>content under development</em></p><h3 
id="ApplicationModuleClassCheatSheet-Symbols">Symbols</h3><p>Main Article: <a  
href="application-module-class-cheat-sheet.html">Application Module Class Cheat 
Sheet</a></p><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Loadservicesonregistrystartup">Load 
services on registry startup</h2><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Defineservicescope">Define service 
scope</h2><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Disambiguateservices">Disambiguate 
services</h2><p><em>content under development</em></p><h3 
id="ApplicationModuleClassCheatSheet-WithserviceId">With service 
Id</h3><p><em>content under development</em></p><h3 
id="ApplicationModuleClassCheatSheet-WithMarkers">With 
Markers</h3><p><em>content under development</em></p><h2 
id="ApplicationModuleClassCheatSheet-Overrideexistingservices">Override
  existing services</h2><p><em>content under 
development</em></p><p>&#160;</p><p></p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/beaneditform-faq.html
==============================================================================
--- websites/production/tapestry/content/beaneditform-faq.html (original)
+++ websites/production/tapestry/content/beaneditform-faq.html Sat Feb  3 
18:21:36 2018
@@ -27,6 +27,16 @@
       </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css" />
 
+          <link href='/resources/highlighter/styles/shCoreCXF.css' 
rel='stylesheet' type='text/css' />
+    <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' 
type='text/css' />
+    <script src='/resources/highlighter/scripts/shCore.js' 
type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushJava.js' 
type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushXml.js' 
type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushPlain.js' 
type='text/javascript'></script>
+        <script>
+      SyntaxHighlighter.defaults['toolbar'] = false;
+      SyntaxHighlighter.all();
+    </script>
   
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -67,24 +77,8 @@
       </div>
 
       <div id="content">
-                <div 
id="ConfluenceContent"><plain-text-body>{scrollbar}</plain-text-body> 
-
-<h2 id="BeanEditFormFAQ-BeanEditForm">BeanEditForm </h2>
-
-<h3 
id="BeanEditFormFAQ-WhydoIgetexceptionsaboutinstantiatingabeanwhenusingBeanEditForm?">Why
 do I get exceptions about instantiating a bean when using BeanEditForm?</h3>
-
-<p>When you render a BeanEditForm, or when the rendered form is submitted, 
Tapestry must instantiate an instance of the object to be edited. This occurs 
when the BeanEditForm's <code>object</code> parameter is bound to null: 
Tapestry instantiates an instance of the property type so that the BeanEditForm 
has an object to read default values from, or to push submitted values into.</p>
-
-<p>By default, this uses the standard <a  
href="injection-in-detail.html">injection mechanism</a>, which means that 
Tapestry will identify the public constructor with the most parameters, and 
attempt to find objects and other objects for each constructor parameter.</p>
-
-<p>There's two ways to fine tune this so you don't get errors:</p>
-
-<ul><li>Place an @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Inject.html";>Inject</a>
 annotation on the correct constructor to use (often, the constructor with no 
parameters).</li></ul>
-
-
-
-<plain-text-body>
-public class MyBean {
+                <div id="ConfluenceContent"><h2 
id="BeanEditFormFAQ-BeanEditForm">BeanEditForm</h2><h3 
id="BeanEditFormFAQ-WhydoIgetexceptionsaboutinstantiatingabeanwhenusingBeanEditForm?">Why
 do I get exceptions about instantiating a bean when using 
BeanEditForm?</h3><p>When you render a BeanEditForm, or when the rendered form 
is submitted, Tapestry must instantiate an instance of the object to be edited. 
This occurs when the BeanEditForm's <code>object</code> parameter is bound to 
null: Tapestry instantiates an instance of the property type so that the 
BeanEditForm has an object to read default values from, or to push submitted 
values into.</p><p>By default, this uses the standard <a  
href="beaneditform-faq.html">injection mechanism</a>, which means that Tapestry 
will identify the public constructor with the most parameters, and attempt to 
find objects and other objects for each constructor parameter.</p><p>There's 
two ways to fine tune this so you don't get errors:</p><ul><li>Pla
 ce an @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Inject.html";>Inject</a>
 annotation on the correct constructor to use (often, the constructor with no 
parameters).</li></ul><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class MyBean {
    @Inject
    public MyBean() { ... }
 
@@ -94,13 +88,9 @@ public class MyBean {
 
    ...
 }
-</plain-text-body>
-
-<ul><li>Provide an event handler method for the "prepare" event, and put an 
instantiated instance into the property.</li></ul>
-
-
-<plain-text-body>
-public class MyPage {
+</pre>
+</div></div><ul><li>Provide an event handler method for the "prepare" event, 
and put an instantiated instance into the property.</li></ul><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class MyPage {
   @Property
   public MyBean myBean;
 
@@ -110,17 +100,8 @@ public class MyPage {
     myBean = new MyBean();
   }
 }
-</plain-text-body>
-
-<h3 
id="BeanEditFormFAQ-What'sthedifferencebetweenBeanEditorandBeanEditForm?">What's
 the difference between BeanEditor and BeanEditForm?</h3>
-
-<p>BeanEditor is a component used within a BeanEditForm.  A BeanEditForm 
simply combines a BeanEditor, a Form, and a Submit component together. Most of 
the capabilities of BeanEditForm are derived from the BeanEditor.</p>
-
-<h3 id="BeanEditFormFAQ-HowdoIcustomizethelayoutoftheBeanEditForm?">How do I 
customize the layout of the BeanEditForm?</h3>
-
-<p>The BeanEditForm is a <em>scaffolding</em> component; it exists to get 
things up and running quickly. It can be customized visually using CSS, and can 
be configured and extended in a number of ways ... but ultimately, if you want 
fine control, you should use the underlying Form, TextField and other 
components directly.</p>
-
-<plain-text-body>{scrollbar}</plain-text-body></div>
+</pre>
+</div></div><h3 
id="BeanEditFormFAQ-What'sthedifferencebetweenBeanEditorandBeanEditForm?">What's
 the difference between BeanEditor and BeanEditForm?</h3><p>BeanEditor is a 
component used within a BeanEditForm. A BeanEditForm simply combines a 
BeanEditor, a Form, and a Submit component together. Most of the capabilities 
of BeanEditForm are derived from the BeanEditor.</p><h3 
id="BeanEditFormFAQ-HowdoIcustomizethelayoutoftheBeanEditForm?">How do I 
customize the layout of the BeanEditForm?</h3><p>The BeanEditForm is a 
<em>scaffolding</em> component; it exists to get things up and running quickly. 
It can be customized visually using CSS, and can be configured and extended in 
a number of ways ... but ultimately, if you want fine control, you should use 
the underlying Form, TextField and other components directly.</p></div>
       </div>
 
       <div class="clearer"></div>


Reply via email to