Author: buildbot
Date: Thu Oct 27 17:20:26 2016
New Revision: 999994
Log:
Production update by buildbot for tapestry
Modified:
websites/production/tapestry/content/ajax-and-zones.html
websites/production/tapestry/content/ajax-components-faq.html
websites/production/tapestry/content/aliases.html
websites/production/tapestry/content/bean-validation.html
websites/production/tapestry/content/beaneditform-faq.html
websites/production/tapestry/content/beaneditform-guide.html
websites/production/tapestry/content/cache/main.pageCache
websites/production/tapestry/content/class-reloading.html
websites/production/tapestry/content/component-classes.html
websites/production/tapestry/content/component-events-faq.html
websites/production/tapestry/content/component-events.html
websites/production/tapestry/content/component-libraries.html
websites/production/tapestry/content/component-parameters.html
websites/production/tapestry/content/component-rendering.html
websites/production/tapestry/content/component-report.html
websites/production/tapestry/content/component-templates.html
websites/production/tapestry/content/configuration.html
websites/production/tapestry/content/documentation-improvement-tasks.html
websites/production/tapestry/content/dom.html
websites/production/tapestry/content/enum-parameter-recipe.html
websites/production/tapestry/content/environmental-services.html
websites/production/tapestry/content/error-page-recipe.html
websites/production/tapestry/content/exploring-the-project.html
websites/production/tapestry/content/extending-the-if-component.html
websites/production/tapestry/content/forms-and-form-components-faq.html
websites/production/tapestry/content/forms-and-validation.html
websites/production/tapestry/content/general-questions.html
websites/production/tapestry/content/hibernate-statistics.html
websites/production/tapestry/content/hibernate-support-faq.html
websites/production/tapestry/content/hibernate-user-guide.html
websites/production/tapestry/content/injection-faq.html
websites/production/tapestry/content/injection-in-detail.html
websites/production/tapestry/content/injection.html
websites/production/tapestry/content/integrating-with-jpa.html
websites/production/tapestry/content/integrating-with-spring-framework.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/legacy-javascript.html
websites/production/tapestry/content/limitations.html
websites/production/tapestry/content/link-components-faq.html
websites/production/tapestry/content/localization.html
websites/production/tapestry/content/maven-support-faq.html
websites/production/tapestry/content/menuleft.html
websites/production/tapestry/content/meta-programming-page-content.html
websites/production/tapestry/content/page-and-component-classes-faq.html
websites/production/tapestry/content/page-navigation.html
websites/production/tapestry/content/parallel-execution.html
websites/production/tapestry/content/persistent-page-data.html
websites/production/tapestry/content/property-expressions.html
websites/production/tapestry/content/registry-startup.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-54.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/security.html
websites/production/tapestry/content/service-advisors.html
websites/production/tapestry/content/service-implementation-reloading.html
websites/production/tapestry/content/session-storage.html
websites/production/tapestry/content/since-and-deprecated-user-macros.html
websites/production/tapestry/content/specific-errors-faq.html
websites/production/tapestry/content/starting-the-ioc-registry.html
websites/production/tapestry/content/switching-cases.html
websites/production/tapestry/content/tapestry-inversion-of-control-faq.html
websites/production/tapestry/content/tapestry-ioc-configuration.html
websites/production/tapestry/content/tapestry-ioc-decorators.html
websites/production/tapestry/content/templating-and-markup-faq.html
websites/production/tapestry/content/test-page-2.html
websites/production/tapestry/content/test-page.html
websites/production/tapestry/content/uploading-files.html
websites/production/tapestry/content/using-jsr-330-standard-annotations.html
websites/production/tapestry/content/using-select-with-a-list.html
websites/production/tapestry/content/version-numbers.html
Modified: websites/production/tapestry/content/ajax-and-zones.html
==============================================================================
--- websites/production/tapestry/content/ajax-and-zones.html (original)
+++ websites/production/tapestry/content/ajax-and-zones.html Thu Oct 27
17:20:26 2016
@@ -47,18 +47,13 @@
<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
href="community.html">Community</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
href="community.html">Community</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 & 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">Ajax and Zones</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 & 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">Ajax and Zones</h1></div></div>
<div class="clearer"></div>
</div>
@@ -70,100 +65,61 @@
</div>
<div id="content">
- <div id="ConfluenceContent"><p>Tapestry provides easy-to-use
support for <strong>Ajax</strong>, the technique of using JavaScript to
dynamically updating parts of a web page with content from the server without
redrawing the whole page. With Tapestry, you can do simple Ajax updates without
having to write any JavaScript code at all.</p><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="ajax-and-zones.html">Ajax and Zones</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="legacy-javascript.html">Legacy JavaScript</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="coffeescript.html">CoffeeScript</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="client-side-javascript.html">Client-Side
JavaScript</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="javascript-modules.html">JavaScript
Modules</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="javascript-faq.html">JavaScript FAQ</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="ajax-components-faq.html">Ajax Components
FAQ</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="component-cheat-sheet.html">Component 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="assets.html">Assets</a>
-
-
- </div>
- </li></ul>
-</div><p>Ajax support is included in many <a
href="component-reference.html">built-in components</a> and <a
href="component-mixins.html">component mixins</a> via the <code>zone</code>
parameter.</p><h2 id="AjaxandZones-Zones">Zones</h2><p>Zones are Tapestry's
approach to performing partial page updates. A <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Zone.html">Zone
component</a> renders as an HTML element, typically a <div>.</p><p>A
zone is recognizable in the DOM because it will have the
attribute <code>data-container-type=zone</code>. The client-side support
for Zones is keyed off of this attribute and value.</p><p><span
style="line-height: 1.4285715;">A Zone can be updated via an EventLink,
ActionLink or Select component, or by a Form. All of these components support a
zone parameter, which provides the id of the Zone's <div>. Clicking such
a link will invoke an event handler method on the se
rver as normal ... except that the return value of the event handler method is
used to send a </span><em style="line-height: 1.4285715;">partial page
response</em><span style="line-height: 1.4285715;"> to the client, and the
content of that response is used to update the Zone's <div> in
place.</span></p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+ <div id="ConfluenceContent"><p>Tapestry provides easy-to-use
support for <strong>Ajax</strong>, the technique of using JavaScript to
dynamically updating parts of a web page with content from the server without
redrawing the whole page. With Tapestry, you can do simple Ajax updates without
having to write any JavaScript code at all.</p><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="ajax-and-zones.html">Ajax and Zones</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="legacy-javascript.html">Legacy JavaScript</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="coffeescript.html">CoffeeScript</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="client-side-javascript.html">Client-Side JavaScript</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="javascript-modules.html">JavaScript Modules</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="javascript-faq.html">JavaScript FAQ</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="ajax-components-faq.html">Ajax Components FAQ</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="component-cheat-sheet.html">Component 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="assets.html">Assets</a>
+ </div> </li></ul></div><p>Ajax support is included in many <a
href="component-reference.html">built-in components</a> and <a
href="component-mixins.html">component mixins</a> via the <code>zone</code>
parameter.</p><h2 id="AjaxandZones-Zones">Zones</h2><p>Zones are Tapestry's
approach to performing partial page updates. A <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Zone.html">Zone
component</a> renders as an HTML element, typically a <div>.</p><p>A
zone is recognizable in the DOM because it will have the
attribute <code>data-container-type=zone</code>. The client-side support
for Zones is keyed off of this attribute and value.</p><p><span
style="line-height: 1.4285715;">A Zone can be updated via an EventLink,
ActionLink or Select component, or by a Form. All of these components support a
zone parameter, which provides the id of the Zone's <div>. Clicking such
a link will invoke an event handl
er method on the server as normal ... except that the return value of the
event handler method is used to send a </span><em style="line-height:
1.4285715;">partial page response</em><span style="line-height: 1.4285715;"> to
the client, and the content of that response is used to update the Zone's
<div> in place.</span></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;"><t:actionlink t:id="someLink"
zone="myzone">update</t:actionlink>
...
<t:zone t:id="myZone" id="myzone">
@@ -237,15 +193,11 @@ Object onActionFromRegister()
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
-<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p>If the Form or Link is enclosed by the Zone itself, then the
<code>zone</code> parameter may be set to the special value <code>^</code>. The
carat is evaluated, on the client side, by searching up form the form or link
element for the first enclosing element that is a Zone. In this way, the
client-side coordination can occur without having to know what the specific
client-side id of the Zone is. Because of this, in some cases, it is no longer
necessary to specify the Zone's <code>id</code> parameter.</p>
-</div><h3 id="AjaxandZones-AnUpdatedivwithinaZonediv">An Update div within a
Zone div</h3>
+<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid
#D8E4F1;"><p>If the Form or Link is enclosed by the Zone itself, then the
<code>zone</code> parameter may be set to the special value <code>^</code>. The
carat is evaluated, on the client side, by searching up form the form or link
element for the first enclosing element that is a Zone. In this way, the
client-side coordination can occur without having to know what the specific
client-side id of the Zone is. Because of this, in some cases, it is no longer
necessary to specify the Zone's <code>id</code> parameter.</p></div><h3
id="AjaxandZones-AnUpdatedivwithinaZonediv">An Update div within a Zone div</h3>
-<div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p><em>This feature is removed starting with Tapestry 5.4</em></p></div><p>In
many situations, a Zone is a kind of "wrapper" or "container" for dynamic
content; one that provides a look and feel ... a bit of wrapping markup to
create a border. In that situation, the Zone <div> may contain an update
<div>.</p><p>An Update <div> is specifically a <div> element
marked with the CSS class "t-zone-update", <em>inside</em> the Zone's
<div>.</p><p>If an Update div exists within a Zone div, then when
Tapestry updates a zone only the update <div>'s content will be changed,
rather than the entire Zone <div>.</p><p>The show and update functions
(see Zone Functions, below) apply to the Zone <div>, not just the update
<div>.</p><h3
id="AjaxandZones-ZoneEffectFunctions(Tapestry5.3andearlier)">Zone Effect
Functions (Tapestry 5.3 and earlier)</h3><p> </p>
+<div style="border-right: 20px solid #ffcccc;border-left: 20px solid
#ffcccc;"><p><em>This feature is removed starting with Tapestry
5.4</em></p></div><p>In many situations, a Zone is a kind of "wrapper" or
"container" for dynamic content; one that provides a look and feel ... a bit of
wrapping markup to create a border. In that situation, the Zone <div> may
contain an update <div>.</p><p>An Update <div> is specifically a
<div> element marked with the CSS class "t-zone-update", <em>inside</em>
the Zone's <div>.</p><p>If an Update div exists within a Zone div, then
when Tapestry updates a zone only the update <div>'s content will be
changed, rather than the entire Zone <div>.</p><p>The show and update
functions (see Zone Functions, below) apply to the Zone <div>, not just
the update <div>.</p><h3
id="AjaxandZones-ZoneEffectFunctions(Tapestry5.3andearlier)">Zone Effect
Functions (Tapestry 5.3 and earlier)</h3><p> </p>
-<div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>_This feature refers to client-side logic only present in Tapestry 5.3 or
earlier. For 5.4, there are client-side events that are triggered before and
after changes to the Zone; listeners on those events can trigger whatever
animations they like.</p></div><p> </p><p>A Zone may be initially visible
or invisible. When a Zone is updated, it is made visible if not currently so.
This is accomplished via a function on the Tapestry.ElementEffect client-side
object. By default, the show() function is used for this purpose. If you want
Tapestry to call a different Tapestry.ElementEffect function when updates
occur, specify its name with the zone's show parameter.</p><p>If a Zone is
already visible, then a different effect function is used to highlight the
change. By default, the highlight() function is called, which performs a yellow
fade to highlight that the content of the Zone has changed. Alternatively, you
can specify a different effect function with the Zone's update parameter:
</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Tapestry.ElementEffect
Function</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Result</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>highlight()</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>(the default) highlight changes to an already-visible
zone</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>show()</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>make the zone visible if it isn't already
visible</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>slidedown()</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>scroll the content down</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>slideup()</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>slide the content back up
(opposite of slidedown)</p></td></tr><tr><td colspan="1" row
span="1" class="confluenceTd"><p>fade()</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>fade the content out (opposite of
show)</p></td></tr></tbody></table></div><p>To have Tapestry update a zone
without the usual yellow highlight effect, just specify "show" for the update
parameter:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<div style="border-right: 20px solid #ffcccc;border-left: 20px solid
#ffcccc;"><p>_This feature refers to client-side logic only present in Tapestry
5.3 or earlier. For 5.4, there are client-side events that are triggered before
and after changes to the Zone; listeners on those events can trigger whatever
animations they like.</p></div><p> </p><p>A Zone may be initially visible
or invisible. When a Zone is updated, it is made visible if not currently so.
This is accomplished via a function on the Tapestry.ElementEffect client-side
object. By default, the show() function is used for this purpose. If you want
Tapestry to call a different Tapestry.ElementEffect function when updates
occur, specify its name with the zone's show parameter.</p><p>If a Zone is
already visible, then a different effect function is used to highlight the
change. By default, the highlight() function is called, which performs a yellow
fade to highlight that the content of the Zone has changed. Alternatively
, you can specify a different effect function with the Zone's update
parameter:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Tapestry.ElementEffect Function</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Result</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>highlight()</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>(the default) highlight changes to an
already-visible zone</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>show()</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>make the zone visible if it isn't already
visible</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>slidedown()</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>scroll the content down</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>slideup()</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>slide t
he content back up (opposite of slidedown)</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>fade()</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>fade the content out (opposite of
show)</p></td></tr></tbody></table></div><p>To have Tapestry update a zone
without the usual yellow highlight effect, just specify "show" for the update
parameter:</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;"><t:zone t:id="myZone" t:update="show"></pre>
</div></div><p>You may also define and use your own JavaScript effect function
(with lower-case names), like this:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: js; gutter: false; theme: Default"
style="font-size:12px;">Tapestry.ElementEffect.myeffectname =
function(element){ YourJavascriptCodeGoesHere; };
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 Thu Oct 27
17:20:26 2016
@@ -46,18 +46,13 @@
<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
href="community.html">Community</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
href="community.html">Community</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 & 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">Ajax Components FAQ</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 & 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">Ajax Components FAQ</h1></div></div>
<div class="clearer"></div>
</div>
Modified: websites/production/tapestry/content/aliases.html
==============================================================================
--- websites/production/tapestry/content/aliases.html (original)
+++ websites/production/tapestry/content/aliases.html Thu Oct 27 17:20:26 2016
@@ -44,18 +44,13 @@
<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
href="community.html">Community</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
href="community.html">Community</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 & 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">Aliases</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 & 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">Aliases</h1></div></div>
<div class="clearer"></div>
</div>
@@ -71,74 +66,43 @@
</p><div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
<p>Use ServiceOverrides instead. Aliases will be removed starting in
5.3.</p></div></div>
-<div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p> </p></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="page-navigation.html">Page Navigation</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="page-life-cycle.html">Page Life Cycle</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="component-rendering.html">Component
Rendering</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="component-events.html">Component Events</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="component-events-faq.html">Component Events
FAQ</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="request-processing.html">Request
Processing</a>
-
-
- </div>
- </li></ul>
-</div><p> </p><p>See <a
href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC
Services</a></p><h1 id="Aliases-Introduction">Introduction</h1><p>Tapestry goes
to great lengths so that you can use the <a href="injection.html">Inject</a>
annotation on a field and provide no additional data, yet end up with the
correct object or service.</p><p>In many cases, Tapestry must match a field
type to an available IoC service.</p><p>If there is only single service in the
registry that implements the service, Tapestry will utilize that
service.</p><p>When there is more than one such service, it is necessary to
disambiguate which service is to be injected. To disambiguate globally (across
all injections), you must create an alias from the service interface directly
to the particular service.</p><p>This takes the form of a contribution to the
Alias service.</p><p>The Alias service has additional purposes: first, it
allows for spot overrides on injected services, bas
ed on the application's mode. Currently, the only mode is "servlet", but
future modes may include "portlet" and possibly "offline".</p><p>Secondly, the
companion AliasOverrides service configuration allows for spot overrides of
specific services, without disturbing the rest of the network of services
within the IoC Registry.</p><h1 id="Aliases-ContributinganAlias">Contributing
an Alias</h1><p>To contribute a new service to the Alias service, you must
first decide on a logical name. Often, this is the name of the service
interface implemented by the service.</p><p>You can then contribute into the
Infrastructure service's configuration:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div style="border-right: 20px solid #ffcccc;border-left: 20px solid
#ffcccc;"><p> </p></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="page-navigation.html">Page Navigation</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="page-life-cycle.html">Page Life Cycle</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="component-rendering.html">Component Rendering</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="component-events.html">Component Events</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="component-events-faq.html">Component Events FAQ</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="request-processing.html">Request Processing</a>
+ </div> </li></ul></div><p> </p><p>See <a
href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC
Services</a></p><h1 id="Aliases-Introduction">Introduction</h1><p>Tapestry goes
to great lengths so that you can use the <a href="injection.html">Inject</a>
annotation on a field and provide no additional data, yet end up with the
correct object or service.</p><p>In many cases, Tapestry must match a field
type to an available IoC service.</p><p>If there is only single service in the
registry that implements the service, Tapestry will utilize that
service.</p><p>When there is more than one such service, it is necessary to
disambiguate which service is to be injected. To disambiguate globally (across
all injections), you must create an alias from the service interface directly
to the particular service.</p><p>This takes the form of a contribution to the
Alias service.</p><p>The Alias service has additional purposes: first, it
allows for spot overrides on inj
ected services, based on the application's mode. Currently, the only mode is
"servlet", but future modes may include "portlet" and possibly
"offline".</p><p>Secondly, the companion AliasOverrides service configuration
allows for spot overrides of specific services, without disturbing the rest of
the network of services within the IoC Registry.</p><h1
id="Aliases-ContributinganAlias">Contributing an Alias</h1><p>To contribute a
new service to the Alias service, you must first decide on a logical name.
Often, this is the name of the service interface implemented by the
service.</p><p>You can then contribute into the Infrastructure service's
configuration:</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;">public static void
contributeAlias(@InjectService("MyService") MyService myService,
Configuration<AliasContribution> configuration)
{
Modified: websites/production/tapestry/content/bean-validation.html
==============================================================================
--- websites/production/tapestry/content/bean-validation.html (original)
+++ websites/production/tapestry/content/bean-validation.html Thu Oct 27
17:20:26 2016
@@ -46,18 +46,13 @@
<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
href="community.html">Community</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
href="community.html">Community</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 & 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">Bean Validation</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 & 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">Bean Validation</h1></div></div>
<div class="clearer"></div>
</div>
@@ -73,38 +68,19 @@
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
-<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </p></div><p><strong>Bean validation</strong> involves validating
user input using Tapestry's built-in support for the <a class="external-link"
href="http://jcp.org/en/jsr/detail?id=303" rel="nofollow">JSR 303 Bean
Validation API</a>.</p><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="bean-validation.html">Bean Validation</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="forms-and-validation.html">Forms and
Validation</a>
-
-
- </div>
- </li></ul>
-</div><p>Tapestry has always provided a powerful non-JSR 303 validation
mechanism (see <a href="forms-and-validation.html">Forms and Validation</a>).
Among other things this mechanism allows you to annotate your domain model
classes with the <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beaneditor/Validate.html">@Validate</a>
annotation. However, this annotation is problematic if your domain model is
used in non-Tapestry applications as well as in Tapestry applications. Your
non-Tapestry application becomes dependent on <em>tapestry5-annotations</em>
module. To make your domain model independent from Tapestry you can use the <a
class="external-link" href="http://jcp.org/en/jsr/detail?id=303"
rel="nofollow">JSR 303: Bean Validation</a> instead. This library provides
integration between Tapestry and JSR-303.</p><h2
id="BeanValidation-Configuration">Configuration</h2><p>The Tapestry's JSR 303 -
Bean Validation Library is responsible f
or configuring and bootstrapping the <a class="external-link"
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"
rel="nofollow">Validator</a> for you. In order to use this library you have to
choose an implementation of the JSR-303 specification like <a
class="external-link" href="https://www.hibernate.org/412.html"
rel="nofollow">Hibernate Validator 4.x</a>. This library is not specific to any
implementation of JSR-303 and will work with any implementation of your
choice.</p><h3 id="BeanValidation-BootstrapingtheBeanValidator">Bootstraping
the Bean Validator</h3><p>The <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beanvalidator/BeanValidatorSource.html">BeanValidatorSource</a>
service is responsible for bootstrapping the <a class="external-link"
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"
rel="nofollow">Validator</a>. You can contribute a <a class="external-link" hre
f="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beanvalidator/BeanValidatorConfigurer.html">BeanValidatorConfigurer</a>
to the configuration of this service in order to participate on the
configuration of <a class="external-link"
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"
rel="nofollow">Validator</a>.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid
#D8E4F1;"><p> </p></div><p><strong>Bean validation</strong> involves
validating user input using Tapestry's built-in support for the <a
class="external-link" href="http://jcp.org/en/jsr/detail?id=303"
rel="nofollow">JSR 303 Bean Validation API</a>.</p><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="bean-validation.html">Bean Validation</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="forms-and-validation.html">Forms and Validation</a>
+ </div> </li></ul></div><p>Tapestry has always provided a powerful non-JSR
303 validation mechanism (see <a href="forms-and-validation.html">Forms and
Validation</a>). Among other things this mechanism allows you to annotate your
domain model classes with the <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beaneditor/Validate.html">@Validate</a>
annotation. However, this annotation is problematic if your domain model is
used in non-Tapestry applications as well as in Tapestry applications. Your
non-Tapestry application becomes dependent on <em>tapestry5-annotations</em>
module. To make your domain model independent from Tapestry you can use the <a
class="external-link" href="http://jcp.org/en/jsr/detail?id=303"
rel="nofollow">JSR 303: Bean Validation</a> instead. This library provides
integration between Tapestry and JSR-303.</p><h2
id="BeanValidation-Configuration">Configuration</h2><p>The Tapestry's JSR 303 -
Bean Validation Libra
ry is responsible for configuring and bootstrapping the <a
class="external-link"
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"
rel="nofollow">Validator</a> for you. In order to use this library you have to
choose an implementation of the JSR-303 specification like <a
class="external-link" href="https://www.hibernate.org/412.html"
rel="nofollow">Hibernate Validator 4.x</a>. This library is not specific to any
implementation of JSR-303 and will work with any implementation of your
choice.</p><h3 id="BeanValidation-BootstrapingtheBeanValidator">Bootstraping
the Bean Validator</h3><p>The <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beanvalidator/BeanValidatorSource.html">BeanValidatorSource</a>
service is responsible for bootstrapping the <a class="external-link"
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"
rel="nofollow">Validator</a>. You can contribute a <a class=
"external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beanvalidator/BeanValidatorConfigurer.html">BeanValidatorConfigurer</a>
to the configuration of this service in order to participate on the
configuration of <a class="external-link"
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"
rel="nofollow">Validator</a>.</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;">@Contribute(BeanValidatorSource.class)
public static void
provideBeanValidatorConfigurer(OrderedConfiguration<BeanValidatorConfigurer>
configuration)
{
Modified: websites/production/tapestry/content/beaneditform-faq.html
==============================================================================
--- websites/production/tapestry/content/beaneditform-faq.html (original)
+++ websites/production/tapestry/content/beaneditform-faq.html Thu Oct 27
17:20:26 2016
@@ -46,18 +46,13 @@
<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
href="community.html">Community</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
href="community.html">Community</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 & 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">BeanEditForm FAQ</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 & 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">BeanEditForm FAQ</h1></div></div>
<div class="clearer"></div>
</div>
Modified: websites/production/tapestry/content/beaneditform-guide.html
==============================================================================
--- websites/production/tapestry/content/beaneditform-guide.html (original)
+++ websites/production/tapestry/content/beaneditform-guide.html Thu Oct 27
17:20:26 2016
@@ -46,18 +46,13 @@
<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
href="community.html">Community</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
href="community.html">Community</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 & 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">BeanEditForm Guide</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 & 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">BeanEditForm Guide</h1></div></div>
<div class="clearer"></div>
</div>
Modified: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/tapestry/content/class-reloading.html
==============================================================================
--- websites/production/tapestry/content/class-reloading.html (original)
+++ websites/production/tapestry/content/class-reloading.html Thu Oct 27
17:20:26 2016
@@ -46,18 +46,13 @@
<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
href="community.html">Community</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
href="community.html">Community</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 & 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">Class Reloading</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 & 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">Class Reloading</h1></div></div>
<div class="clearer"></div>
</div>
@@ -69,43 +64,23 @@
</div>
<div id="content">
- <div id="ConfluenceContent"><h1
id="ClassReloading-LiveClassandTemplateReloading">Live Class and Template
Reloading</h1><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="service-implementation-reloading.html">Service Implementation
Reloading</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="class-reloading.html">Class Reloading</a>
-
-
- </div>
- </li></ul>
-</div><p>One of the best features of Tapestry is automatic reloading of
changed classes and templates. <em>Page and component</em> classes will
automatically reload when changed. Likewise, changes to component templates and
other related resources will also be picked up immediately. In addition,
starting in version 5.2, your service classes will also be reloaded
automatically after changes (if you're using <a href="ioc.html">Tapestry
IoC</a>).</p><h2 id="ClassReloading-TemplateReloading">Template
Reloading</h2><p>When a template changes, all page instances (as well as the
hierarchy of components below them) are discarded and reconstructed with the
new template. However, classes are not reloaded in this case.</p><h2
id="ClassReloading-ClassReloading">Class Reloading</h2><p>On a change to
<em>any</em> loaded class from inside a controlled package (or any sub-package
of a controlled package), Tapestry will discard all page instances, and discard
the class loader.</p><p><a href="persi
stent-page-data.html">Persistent field data</a> on the pages will usually not
be affected (as it is stored separately, usually in the session). This allows
you to make fairly significant changes to a component class even while the
application continues to run.</p><h2
id="ClassReloading-PackagesScanned">Packages Scanned</h2><p>Only certain
classes are subject to reload. Reloading is based on package name; the packages
that are reloaded are derived from the <a
href="configuration.html">application configuration</a>.</p><p>If your root
package is <code>org.example.myapp</code>, then only classes in the following
packages (and their sub-packages) will be scanned for automatic
reloads:</p><ul><li>org.example.myapp.pages</li><li>org.example.myapp.components</li><li>org.example.myapp.mixins</li><li>org.example.myapp.base</li><li>org.example.myapp.services
(Tapestry 5.2 and later, with restrictions)</li></ul><p>
+ <div id="ConfluenceContent"><h1
id="ClassReloading-LiveClassandTemplateReloading">Live Class and Template
Reloading</h1><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="service-implementation-reloading.html">Service Implementation
Reloading</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="class-reloading.html">Class Reloading</a>
+ </div> </li></ul></div><p>One of the best features of Tapestry is automatic
reloading of changed classes and templates. <em>Page and component</em> classes
will automatically reload when changed. Likewise, changes to component
templates and other related resources will also be picked up immediately. In
addition, starting in version 5.2, your service classes will also be reloaded
automatically after changes (if you're using <a href="ioc.html">Tapestry
IoC</a>).</p><h2 id="ClassReloading-TemplateReloading">Template
Reloading</h2><p>When a template changes, all page instances (as well as the
hierarchy of components below them) are discarded and reconstructed with the
new template. However, classes are not reloaded in this case.</p><h2
id="ClassReloading-ClassReloading">Class Reloading</h2><p>On a change to
<em>any</em> loaded class from inside a controlled package (or any sub-package
of a controlled package), Tapestry will discard all page instances, and discard
the class loader.</p
><p><a href="persistent-page-data.html">Persistent field data</a> on the
>pages will usually not be affected (as it is stored separately, usually in
>the session). This allows you to make fairly significant changes to a
>component class even while the application continues to run.</p><h2
>id="ClassReloading-PackagesScanned">Packages Scanned</h2><p>Only certain
>classes are subject to reload. Reloading is based on package name; the
>packages that are reloaded are derived from the <a
>href="configuration.html">application configuration</a>.</p><p>If your root
>package is <code>org.example.myapp</code>, then only classes in the following
>packages (and their sub-packages) will be scanned for automatic
>reloads:</p><ul><li>org.example.myapp.pages</li><li>org.example.myapp.components</li><li>org.example.myapp.mixins</li><li>org.example.myapp.base</li><li>org.example.myapp.services
> (Tapestry 5.2 and later, with restrictions)</li></ul><p>
</p><div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
-<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p>Starting in Tapestry 5.2, live class reloading includes service
implementation classes. There are some limitations to this. See <a
href="service-implementation-reloading.html" title="Service Implementation
Reloading">Service Implementation Reloading</a> for more details.</p>
-</div><h2 id="ClassReloading-FileSystemOnly">File System Only</h2><p>Reloading
of classes and other files applies only to files that are actually on the file
system, and not files obtained from JAR files. This is perfect during
development, where the files in question are in your local workspace. In a
deployed application, you are somewhat subject to the implementation of your
servlet container or application server.</p><h2
id="ClassReloading-ClassLoaderIssues">Class Loader Issues</h2><p>Tapestry uses
an extra class loader to load page and component classes.</p><p>When a change
to an underlying Java class file is detected, Tapestry discards the class
loader and any pooled page instances.</p><p>You should be careful to not hold
any references to Tapestry pages or components in other code, such as Tapestry
IoC services. Holding such references can cause significant memory leaks, as
they can prevent the class loader from being reclaimed by the garbage
collector.</p><h2 id="ClassReloadi
ng-ClassCastExceptions">ClassCastExceptions</h2><p>Tapestry's class loader
architecture can cause minor headaches when you make use of a services layer,
or any time that you pass component instances to objects that are not
themselves components.</p><p>In such cases you may see ClassCastException
errors. This is because the same class name, say org.example.myapp.pages.Start,
exists as two different class instances. One class instance is loaded by the
web application's default class loader. A second class instance has been loaded
<em>and transformed</em> by Tapestry's reloading class loader.</p><p>Ordinary
classes, such as Tapestry IoC Services, will be loaded by the default class
loader and expect instances to be loaded by the same class loader (or a
parent).</p><p>The solution to this problem is to introduce an interface; the
component class should implement the interface, and the service should expect
an instance of the interface, rather than a specific type.</p><p>It is
important
that the interface be loaded by the default class loader. It should not be in
the pages or components package, but instead be in another package, such as
services.</p><h2 id="ClassReloading-HandlingReloadsinyourCode">Handling Reloads
in your Code</h2><p>On occasion, you may need to know when invalidations occur,
to clear your own cache. For example, if you have a binding that creates new
classes, the way <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/PropertyConduitSource.html">PropertyConduitSource</a>
does, you need to discard any cached classes or instances when a change is
detected in component classes.</p><p>You do this by registering a listener with
the correct <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tpaestry5/services/InvalidationEventHub.html">InvalidationEventHub</a>
service.</p><p>For example, your service may be in the business of creating
new classes based on component
classes, and keep a cache of those classes:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid
#D8E4F1;"><p>Starting in Tapestry 5.2, live class reloading includes service
implementation classes. There are some limitations to this. See <a
href="service-implementation-reloading.html" title="Service Implementation
Reloading">Service Implementation Reloading</a> for more details.</p></div><h2
id="ClassReloading-FileSystemOnly">File System Only</h2><p>Reloading of classes
and other files applies only to files that are actually on the file system, and
not files obtained from JAR files. This is perfect during development, where
the files in question are in your local workspace. In a deployed application,
you are somewhat subject to the implementation of your servlet container or
application server.</p><h2 id="ClassReloading-ClassLoaderIssues">Class Loader
Issues</h2><p>Tapestry uses an extra class loader to load page and component
classes.</p><p>When a change to an underlying Java class file is detected,
Tapestry
discards the class loader and any pooled page instances.</p><p>You should be
careful to not hold any references to Tapestry pages or components in other
code, such as Tapestry IoC services. Holding such references can cause
significant memory leaks, as they can prevent the class loader from being
reclaimed by the garbage collector.</p><h2
id="ClassReloading-ClassCastExceptions">ClassCastExceptions</h2><p>Tapestry's
class loader architecture can cause minor headaches when you make use of a
services layer, or any time that you pass component instances to objects that
are not themselves components.</p><p>In such cases you may see
ClassCastException errors. This is because the same class name, say
org.example.myapp.pages.Start, exists as two different class instances. One
class instance is loaded by the web application's default class loader. A
second class instance has been loaded <em>and transformed</em> by Tapestry's
reloading class loader.</p><p>Ordinary classes, such as Tapestry I
oC Services, will be loaded by the default class loader and expect instances
to be loaded by the same class loader (or a parent).</p><p>The solution to this
problem is to introduce an interface; the component class should implement the
interface, and the service should expect an instance of the interface, rather
than a specific type.</p><p>It is important that the interface be loaded by the
default class loader. It should not be in the pages or components package, but
instead be in another package, such as services.</p><h2
id="ClassReloading-HandlingReloadsinyourCode">Handling Reloads in your
Code</h2><p>On occasion, you may need to know when invalidations occur, to
clear your own cache. For example, if you have a binding that creates new
classes, the way <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/PropertyConduitSource.html">PropertyConduitSource</a>
does, you need to discard any cached classes or instances when a change
is detected in component classes.</p><p>You do this by registering a listener
with the correct <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tpaestry5/services/InvalidationEventHub.html">InvalidationEventHub</a>
service.</p><p>For example, your service may be in the business of creating
new classes based on component classes, and keep a cache of those
classes:</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;">public class MyServiceImpl implements MyService,
InvalidationEventListener
{
public final Map<String,Class> cache = new
ConcurrentHashMap<String,Class>();