Author: buildbot
Date: Sun Nov 8 17:21:51 2015
New Revision: 971770
Log:
Production update by buildbot for tapestry
Added:
websites/production/tapestry/content/bannerv2.html
Modified:
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/cache/main.pageCache
websites/production/tapestry/content/class-reloading.html
websites/production/tapestry/content/community.html
websites/production/tapestry/content/component-events-faq.html
websites/production/tapestry/content/component-libraries.html
websites/production/tapestry/content/component-parameters.html
websites/production/tapestry/content/component-reference.html
websites/production/tapestry/content/configuration.html
websites/production/tapestry/content/default-parameter.html
websites/production/tapestry/content/documentation.html
websites/production/tapestry/content/enum-parameter-recipe.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-core-conf.html
websites/production/tapestry/content/hibernate-core.html
websites/production/tapestry/content/hibernate-support-faq.html
websites/production/tapestry/content/hibernate.html
websites/production/tapestry/content/indexv2.html
websites/production/tapestry/content/injection-faq.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/javascript-rewrite-in-54.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/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/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/session-storage.html
websites/production/tapestry/content/specific-errors-faq.html
websites/production/tapestry/content/supporting-informal-parameters.html
websites/production/tapestry/content/switching-cases.html
websites/production/tapestry/content/tapestry-inversion-of-control-faq.html
websites/production/tapestry/content/templating-and-markup-faq.html
websites/production/tapestry/content/test-page-2.html
websites/production/tapestry/content/using-select-with-a-list.html
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 Sun Nov 8
17:21:51 2015
@@ -67,7 +67,30 @@
</div>
<div id="content">
-<div id="ConfluenceContent"><h2 id="AjaxComponentsFAQ-AjaxComponents">Ajax
Components</h2><p>Main article: <a shape="rect" 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 inserted into the id. There are other examples where Tapes
try 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><div></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">
+<div id="ConfluenceContent">
+<div class="atb-scrollbar-macro">
+ <div class="prev">
+ <a shape="rect" href="javascript-faq.html" rel="prev">
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-left">Previous</span>
+ <span class="title">JavaScript FAQ</span>
+ </a>
+
+ </div>
+ <div class="parent">
+ <a shape="rect" href="frequently-asked-questions.html"
rel="parent">
+ <span class="aui-icon
aui-icon-small atb-icon-arrow-up">Up</span>
+ <span class="title">Frequently Asked
Questions</span>
+ </a>
+
+ </div>
+ <div class="next">
+ <a shape="rect" href="injection-faq.html" rel="next">
+ <span class="title">Injection FAQ</span>
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-right">Next</span>
+ </a>
+
+ </div>
+</div><h2 id="AjaxComponentsFAQ-AjaxComponents">Ajax Components</h2><p>Main
article: <a shape="rect" 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 inserted into the id. There are other examples where Tapestry component ids
in n
ested 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><div></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;"><t:zone id="search" t:id="searchZone">
<t:form t:id="searchForm" zone="searchZone">
<t:textfield t:id="query" size="20"/>
@@ -145,7 +168,30 @@
</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;"> <input id="firstName_12a820cc40e"
name="firstName" type="text">
</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"Therenderedcontentdidnotincludeanyelementsthatallowforthepositioningofthehiddenformfield'selement."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 <input>
field in a valid location, and HTML defines some constraints for that; an input
field must appear inside a &l
t;p> or <div> element. In your empty Zone, there's no place to put
the hidden element.</p><p>The solution is to add a <div> element to the
body of the zone; t<span style="line-height: 1.4285715;">his ensures that
there's a place for the hidden input field.  An empty <div> element
(even one containing a hidden form field) will not affect page
layout.</span></p></div>
+</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"Therenderedcontentdidnotincludeanyelementsthatallowforthepositioningofthehiddenformfield'selement."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 <input>
field in a valid location, and HTML defines some constraints for that; an input
field must appear inside a &l
t;p> or <div> element. In your empty Zone, there's no place to put
the hidden element.</p><p>The solution is to add a <div> element to the
body of the zone; t<span style="line-height: 1.4285715;">his ensures that
there's a place for the hidden input field.  An empty <div> element
(even one containing a hidden form field) will not affect page
layout.</span></p>
+<div class="atb-scrollbar-macro">
+ <div class="prev">
+ <a shape="rect" href="javascript-faq.html" rel="prev">
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-left">Previous</span>
+ <span class="title">JavaScript FAQ</span>
+ </a>
+
+ </div>
+ <div class="parent">
+ <a shape="rect" href="frequently-asked-questions.html"
rel="parent">
+ <span class="aui-icon
aui-icon-small atb-icon-arrow-up">Up</span>
+ <span class="title">Frequently Asked
Questions</span>
+ </a>
+
+ </div>
+ <div class="next">
+ <a shape="rect" href="injection-faq.html" rel="next">
+ <span class="title">Injection FAQ</span>
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-right">Next</span>
+ </a>
+
+ </div>
+</div></div>
</div>
<div class="clearer"></div>
Modified:
websites/production/tapestry/content/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
Sun Nov 8 17:21:51 2015
@@ -66,11 +66,11 @@
<div id="content">
<div id="ConfluenceContent"><p> </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.rbtoc1439057978181 {padding: 0px;}
-div.rbtoc1439057978181 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1439057978181 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1447003216396 {padding: 0px;}
+div.rbtoc1447003216396 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1447003216396 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1439057978181">
+/*]]>*/</style></p><div class="toc-macro rbtoc1447003216396">
<ul class="toc-indentation"><li>Related Articles</li></ul>
<ul><li><a shape="rect"
href="#ApplicationModuleClassCheatSheet-Namingconventions">Naming
conventions</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#ApplicationModuleClassCheatSheet-Thebindmethod">The bind
method</a></li><li><a shape="rect"
href="#ApplicationModuleClassCheatSheet-Servicebuildermethods">Service builder
methods</a></li><li><a shape="rect"
href="#ApplicationModuleClassCheatSheet-Contributemethods">Contribute
methods</a>
Added: websites/production/tapestry/content/bannerv2.html
==============================================================================
--- websites/production/tapestry/content/bannerv2.html (added)
+++ websites/production/tapestry/content/bannerv2.html Sun Nov 8 17:21:51 2015
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+
+ <!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<html>
+<head>
+ <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+ <meta http-equiv="x-ua-compatible" content="IE=9">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>
+ BannerV2 -- Apache Tapestry
+ </title>
+ <link type="text/css" rel="stylesheet" href="/resources/space.css">
+
+
+ <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
+
+</head>
+<body>
+ <div class="wrapper bs">
+
+<div id="navigation"><div class="nav">
+<ul class="alternate"><li><a shape="rect"
href="index.html">Home</a></li><li><a shape="rect"
href="getting-started.html">Getting Started</a></li><li><a shape="rect"
href="documentation.html">Documentation</a></li><li><a shape="rect"
href="download.html">Download</a></li><li><a shape="rect"
href="about.html">About</a></li><li><a shape="rect"
href="community.html">Community</a></li><li><a shape="rect"
class="external-link" href="http://www.apache.org/">Apache</a></li><li><a
shape="rect" class="external-link"
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a
shape="rect" 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 shape="rect"
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">BannerV2</h1></div></div>
+<div class="clearer"></div>
+</div>
+
+<div class="clearer"></div>
+
+ <div id="breadcrumbs">
+ <a href="index.html">Apache Tapestry</a> > <a
href="index.html">Index</a> > <a href="bannerv2.html">BannerV2</a>
+ <a class="edit" title="Edit this page (requires approval -- just ask on
the mailing list)"
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=61327587">edit</a>
+ </div>
+
+<div id="content">
+<div id="ConfluenceContent"><div class="row" id="top"><div
class="col-md-8"><h1 id="BannerV2-"><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image
confluence-external-resource"
src="http://tapestry.apache.org/images/tapestry.png"
data-image-src="http://tapestry.apache.org/images/tapestry.png"></span> </h1></div><div
class="col-md-4"><div><p> </p><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><pre><br clear="none">A component-oriented web framework
for creating dynamic, robust, highly scalable web applications in
Java.</pre></div></div><p> </p><p> </p></div>
+</div>
+
+<div class="clearer"></div>
+<div id="footer">
+<div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather
logo, and the Apache Tapestry project logo are trademarks of The Apache
Software Foundation.<br clear="none">
+</p><p><script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-400821-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript';
ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
+ })();
+</script></p><p></p></div>
+</div>
+ <div id="comments_thread"></div>
+ <script type="text/javascript"
src="https://comments.apache.org/show_comments.lua?site=tapestry&page=http://tapestry.apache.org/bannerv2.html"
async="true">
+ </script>
+ <noscript>
+ <iframe width="100%" height="500"
src="https://comments.apache.org/iframe.lua?site=tapestry&page=http://tapestry.apache.org/bannerv2.html"></iframe>
+ </noscript>
+ </div>
+</body>
+</html>
Modified: websites/production/tapestry/content/beaneditform-faq.html
==============================================================================
--- websites/production/tapestry/content/beaneditform-faq.html (original)
+++ websites/production/tapestry/content/beaneditform-faq.html Sun Nov 8
17:21:51 2015
@@ -67,7 +67,30 @@
</div>
<div id="content">
-<div id="ConfluenceContent">
+<div id="ConfluenceContent">
+<div class="atb-scrollbar-macro">
+ <div class="prev">
+ <a shape="rect" href="forms-and-form-components-faq.html" rel="prev">
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-left">Previous</span>
+ <span class="title">Forms and Form Components
FAQ</span>
+ </a>
+
+ </div>
+ <div class="parent">
+ <a shape="rect" href="frequently-asked-questions.html"
rel="parent">
+ <span class="aui-icon
aui-icon-small atb-icon-arrow-up">Up</span>
+ <span class="title">Frequently Asked
Questions</span>
+ </a>
+
+ </div>
+ <div class="next">
+ <a shape="rect" href="link-components-faq.html" rel="next">
+ <span class="title">Link Components FAQ</span>
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-right">Next</span>
+ </a>
+
+ </div>
+</div>
<h2 id="BeanEditFormFAQ-BeanEditForm">BeanEditForm </h2>
@@ -123,7 +146,31 @@ public class MyPage {
<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 class="atb-scrollbar-macro">
+ <div class="prev">
+ <a shape="rect" href="forms-and-form-components-faq.html" rel="prev">
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-left">Previous</span>
+ <span class="title">Forms and Form Components
FAQ</span>
+ </a>
+
+ </div>
+ <div class="parent">
+ <a shape="rect" href="frequently-asked-questions.html"
rel="parent">
+ <span class="aui-icon
aui-icon-small atb-icon-arrow-up">Up</span>
+ <span class="title">Frequently Asked
Questions</span>
+ </a>
+
+ </div>
+ <div class="next">
+ <a shape="rect" href="link-components-faq.html" rel="next">
+ <span class="title">Link Components FAQ</span>
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-right">Next</span>
+ </a>
+
+ </div>
+</div></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/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 Sun Nov 8
17:21:51 2015
@@ -124,7 +124,30 @@
</div></div><p>This is the intent of service builder methods; to do more than
just injecting dependencies.</p><h2
id="ClassReloading-CheckingForUpdates">Checking For Updates</h2><p>The built in
InvalidationEventHub services provide notifications of changes to component
classes, to component templates, and to component message catalogs. If you wish
to check some other resources (for example, files in a directory of the file
system or rows in a database table), you should register as an <a shape="rect"
class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/UpdateListener.html">UpdateListener</a>
with the <a shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/UpdateListenerHub.html">UpdateListenerHub</a>
service.</p><p>Periodically (the frequency is configurable), UpdateListeners
are notified that they should check for updates. Typically, UpdateListeners are
also InvalidationEven
tHubs (or provide InvalidationEventHubs), so that other interested parties can
be alerted when underlying data changes.</p><h2
id="ClassReloading-TroubleshootingLiveClassReloading">Troubleshooting Live
Class Reloading</h2><h3 id="ClassReloading-QuickChecklist">Quick
Checklist</h3><ul><li>"Production Mode" must be false (in Tapestry 5.3 and
later)</li><li>The class must be one that Tapestry instantiates (a page,
component, or mixin class, or a Tapestry IOC service implementation that
implements an interface)</li><li>Turn on "Build Automatically" in your IDE, or
remember to build manually.</li><li>Turn <em>off</em> JVM hot code swapping, if
your servlet container supports it.</li><li>Eclipse: Uncheck the "derived"
checkbox for the Target dir (in the Project Explorer view, right click on
"target", select properties, uncheck "derived" on the Resource
tab)</li></ul><p>Some of these issues are described in more detail
below.</p><h3 id="ClassReloading-IfLiveClassReloadingdoesn'twork">If Li
ve Class Reloading doesn't work</h3><h4
id="ClassReloading-ProductionMode">Production Mode</h4><p>Starting with
Tapestry 5.3, Live Class Reloading only works when not in "Production Mode".
Check your application module (usually AppModule.java) to be sure you
have:</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;">configuration.add(SymbolConstants.PRODUCTION_MODE,
"false");
</pre>
-</div></div><p>and that this isn't being overridden to "true" on your
application's startup command line.</p><h4
id="ClassReloading-BuildPathIssues">Build Path Issues</h4><p>Live Class
Reloading can fail if your build path isn't set correctly, and the exact
configuration may differ between Maven plugin versions and Eclipse versions.
The build process must be set to create classes in a folder which is in the
servlet container's classpath.</p><p>Live Class Reloading won't work correctly
with vanilla Tomcat without some tweaks (see below).</p><p>Non-Tapestry filters
can interfere with LCR. Try disabling other filters in your web.xml file to see
if that helps.</p><h4 id="ClassReloading-BuildingAutomatically">Building
Automatically</h4><p>Although LCR allows you to see changes without restarting
your app, you still need to "build" your project (to compile the Java source
into byte code). Your IDE can be set to do this automatically every time you
save a file. (In Eclipse, this is done us
ing <code>Project > Build Automatically</code>.) Alternatively, you can
manually trigger a build after you save a file. (In Eclipse, this is done using
<code>Project > Build</code>, or by pressing <code>Control-B</code>.)</p><h4
id="ClassReloading-TurnoffJVMhotcodeswapping&automaticrestarts">Turn off
JVM hot code swapping & automatic restarts</h4><p>Many servlet containers,
including Tomcat and Jetty, support various forms of hot code swapping and/or
automatic restarts when file changes are detected. These are generally
<strong>much slower</strong> than LCR and usually should be turned off with
Tapestry applications. If you're using RunJettyRun plugin for Eclipse, for
example, edit your Run Configuration, and on the Jetty tab, click Show Advanced
Options and uncheck the Enable Scanner checkbox.</p><h3
id="ClassReloading-TomcatSpecifics">Tomcat Specifics</h3><p>See <a shape="rect"
class="external-link"
href="http://docs.codehaus.org/display/TYNAMO/Developing+with+Tomcat
+and+Eclipse" >these hints</a></p><h3
id="ClassReloading-IfLiveClassReloadingworksbutisslow">If Live Class Reloading
works but is slow</h3><p>If LCR works for you but is slow (more than a second
or two), consider the following.</p><ul><li>Be sure your project source files
(your workspace in Eclipse, for example), are on a local drive, NOT a network
location. Network drives are always slower, and the file system scanning needed
for LCR can add a noticable lag if I/O is slow. If you use Maven, be sure to
put your local repository (e.g. ~/.m2/repository) on a local drive for similar
reasons.</li><li>Since LCR adds classes to your PermGen space, you may be
running low on PermGen memory (and may eventually get a
"java.lang.OutOfMemoryError: PermGen space" error). Try increasing PermGen size
with a JVM argument of something like
<code>-XX:MaxPermSize=400m</code></li></ul><p></p></div>
+</div></div><p>and that this isn't being overridden to "true" on your
application's startup command line.</p><h4
id="ClassReloading-BuildPathIssues">Build Path Issues</h4><p>Live Class
Reloading can fail if your build path isn't set correctly, and the exact
configuration may differ between Maven plugin versions and Eclipse versions.
The build process must be set to create classes in a folder which is in the
servlet container's classpath.</p><p>Live Class Reloading won't work correctly
with vanilla Tomcat without some tweaks (see below).</p><p>Non-Tapestry filters
can interfere with LCR. Try disabling other filters in your web.xml file to see
if that helps.</p><h4 id="ClassReloading-BuildingAutomatically">Building
Automatically</h4><p>Although LCR allows you to see changes without restarting
your app, you still need to "build" your project (to compile the Java source
into byte code). Your IDE can be set to do this automatically every time you
save a file. (In Eclipse, this is done us
ing <code>Project > Build Automatically</code>.) Alternatively, you can
manually trigger a build after you save a file. (In Eclipse, this is done using
<code>Project > Build</code>, or by pressing <code>Control-B</code>.)</p><h4
id="ClassReloading-TurnoffJVMhotcodeswapping&automaticrestarts">Turn off
JVM hot code swapping & automatic restarts</h4><p>Many servlet containers,
including Tomcat and Jetty, support various forms of hot code swapping and/or
automatic restarts when file changes are detected. These are generally
<strong>much slower</strong> than LCR and usually should be turned off with
Tapestry applications. If you're using RunJettyRun plugin for Eclipse, for
example, edit your Run Configuration, and on the Jetty tab, click Show Advanced
Options and uncheck the Enable Scanner checkbox.</p><h3
id="ClassReloading-TomcatSpecifics">Tomcat Specifics</h3><p>See <a shape="rect"
class="external-link"
href="http://docs.codehaus.org/display/TYNAMO/Developing+with+Tomcat
+and+Eclipse" >these hints</a></p><h3
id="ClassReloading-IfLiveClassReloadingworksbutisslow">If Live Class Reloading
works but is slow</h3><p>If LCR works for you but is slow (more than a second
or two), consider the following.</p><ul><li>Be sure your project source files
(your workspace in Eclipse, for example), are on a local drive, NOT a network
location. Network drives are always slower, and the file system scanning needed
for LCR can add a noticable lag if I/O is slow. If you use Maven, be sure to
put your local repository (e.g. ~/.m2/repository) on a local drive for similar
reasons.</li><li>Since LCR adds classes to your PermGen space, you may be
running low on PermGen memory (and may eventually get a
"java.lang.OutOfMemoryError: PermGen space" error). Try increasing PermGen size
with a JVM argument of something like
<code>-XX:MaxPermSize=400m</code></li></ul><p>
+</p><div class="atb-scrollbar-macro">
+ <div class="prev">
+ <a shape="rect" href="runtime-exceptions.html" rel="prev">
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-left">Previous</span>
+ <span class="title">Runtime Exceptions</span>
+ </a>
+
+ </div>
+ <div class="parent">
+ <a shape="rect" href="user-guide.html" rel="parent">
+ <span class="aui-icon
aui-icon-small atb-icon-arrow-up">Up</span>
+ <span class="title">User Guide</span>
+ </a>
+
+ </div>
+ <div class="next">
+ <a shape="rect" href="component-reference.html" rel="next">
+ <span class="title">Component Reference</span>
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-right">Next</span>
+ </a>
+
+ </div>
+</div></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/community.html
==============================================================================
--- websites/production/tapestry/content/community.html (original)
+++ websites/production/tapestry/content/community.html Sun Nov 8 17:21:51 2015
@@ -58,11 +58,11 @@
<div id="content">
<div id="ConfluenceContent"><p>Tapestry has an active community of users and
developers. This is an overview of how to participate, along with a list of
some of the great contributions of the community members.</p><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1440339569426 {padding: 0px;}
-div.rbtoc1440339569426 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1440339569426 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1447003194204 {padding: 0px;}
+div.rbtoc1447003194204 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1447003194204 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1440339569426">
+/*]]>*/</style></p><div class="toc-macro rbtoc1447003194204">
<ul class="toc-indentation"><li><a shape="rect"
href="#Community-GettingInvolved">Getting Involved</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#Community-ReportingProblems/GettingSupport">Reporting Problems / Getting
Support</a></li><li><a shape="rect"
href="#Community-ContributingtranslationsforTapestrybuilt-inmessages">Contributing
translations for Tapestry built-in messages</a></li><li><a shape="rect"
href="#Community-SourceCodeAccess">Source Code Access</a></li><li><a
shape="rect" href="#Community-BecomingaContributor">Becoming a
Contributor</a></li><li><a shape="rect"
href="#Community-BecomingaCommitter">Becoming a Committer</a></li></ul>
</li><li><a shape="rect" href="#Community-CommunityContributions">Community
Contributions</a>
Modified: websites/production/tapestry/content/component-events-faq.html
==============================================================================
--- websites/production/tapestry/content/component-events-faq.html (original)
+++ websites/production/tapestry/content/component-events-faq.html Sun Nov 8
17:21:51 2015
@@ -67,7 +67,30 @@
</div>
<div id="content">
-<div id="ConfluenceContent">
+<div id="ConfluenceContent">
+<div class="atb-scrollbar-macro">
+ <div class="prev">
+ <a shape="rect" href="link-components-faq.html" rel="prev">
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-left">Previous</span>
+ <span class="title">Link Components FAQ</span>
+ </a>
+
+ </div>
+ <div class="parent">
+ <a shape="rect" href="frequently-asked-questions.html"
rel="parent">
+ <span class="aui-icon
aui-icon-small atb-icon-arrow-up">Up</span>
+ <span class="title">Frequently Asked
Questions</span>
+ </a>
+
+ </div>
+ <div class="next">
+ <a shape="rect" href="javascript-faq.html" rel="next">
+ <span class="title">JavaScript FAQ</span>
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-right">Next</span>
+ </a>
+
+ </div>
+</div>
<h2 id="ComponentEventsFAQ-ComponentEvents">Component Events </h2>
@@ -98,7 +121,31 @@
<h3
id="ComponentEventsFAQ-IspecifiedazoneinmyActionLink/EventLink,sowhydoesn'tmyeventfireviaajax(request.isXHR()isfalse)?">I
specified a zone in my ActionLink/EventLink, so why doesn't my event fire via
ajax (request.isXHR() is false)?</h3>
<p>Check your browser's JavaScript console for errors. It's likely that a
JavaScript error has prevented Tapestry from transforming your
ActionLink/EventLink from a page render action to an ajax action.</p>
-</div>
+
+
+<div class="atb-scrollbar-macro">
+ <div class="prev">
+ <a shape="rect" href="link-components-faq.html" rel="prev">
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-left">Previous</span>
+ <span class="title">Link Components FAQ</span>
+ </a>
+
+ </div>
+ <div class="parent">
+ <a shape="rect" href="frequently-asked-questions.html"
rel="parent">
+ <span class="aui-icon
aui-icon-small atb-icon-arrow-up">Up</span>
+ <span class="title">Frequently Asked
Questions</span>
+ </a>
+
+ </div>
+ <div class="next">
+ <a shape="rect" href="javascript-faq.html" rel="next">
+ <span class="title">JavaScript FAQ</span>
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-right">Next</span>
+ </a>
+
+ </div>
+</div></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/component-libraries.html
==============================================================================
--- websites/production/tapestry/content/component-libraries.html (original)
+++ websites/production/tapestry/content/component-libraries.html Sun Nov 8
17:21:51 2015
@@ -67,7 +67,30 @@
</div>
<div id="content">
-<div id="ConfluenceContent"><div class="confluence-information-macro
confluence-information-macro-warning"><span class="aui-icon aui-icon-small
aui-iconfont-error confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This page has not yet been fully
updated for Tapestry 5.4. Things are different and simpler in 5.4 than in
previous releases.</p></div></div><h1
id="ComponentLibraries-CreatingComponentLibraries">Creating Component
Libraries</h1><p>Nearly every Tapestry application includes a least a couple of
custom components, specific to the application. What's exciting about Tapestry
is how easy it is to package components for reuse across many applications ...
and the fact that applications using a component library need no special
configuration.</p><div class="aui-label" style="float:right" title="Related
Articles">
+<div id="ConfluenceContent"><p>
+</p><div class="atb-scrollbar-macro">
+ <div class="prev">
+ <a shape="rect" href="supporting-informal-parameters.html" rel="prev">
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-left">Previous</span>
+ <span class="title">Supporting Informal
Parameters</span>
+ </a>
+
+ </div>
+ <div class="parent">
+ <a shape="rect" href="cookbook.html" rel="parent">
+ <span class="aui-icon
aui-icon-small atb-icon-arrow-up">Up</span>
+ <span class="title">Cookbook</span>
+ </a>
+
+ </div>
+ <div class="next">
+ <a shape="rect" href="switching-cases.html" rel="next">
+ <span class="title">Switching Cases</span>
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-right">Next</span>
+ </a>
+
+ </div>
+</div><div class="confluence-information-macro
confluence-information-macro-warning"><span class="aui-icon aui-icon-small
aui-iconfont-error confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This page has not yet been fully
updated for Tapestry 5.4. Things are different and simpler in 5.4 than in
previous releases.</p></div></div><h1
id="ComponentLibraries-CreatingComponentLibraries">Creating Component
Libraries</h1><p>Nearly every Tapestry application includes a least a couple of
custom components, specific to the application. What's exciting about Tapestry
is how easy it is to package components for reuse across many applications ...
and the fact that applications using a component library need no special
configuration.</p><div class="aui-label" style="float:right" title="Related
Articles">
Modified: websites/production/tapestry/content/component-parameters.html
==============================================================================
--- websites/production/tapestry/content/component-parameters.html (original)
+++ websites/production/tapestry/content/component-parameters.html Sun Nov 8
17:21:51 2015
@@ -167,11 +167,11 @@
</div></div><p>A component may have any number of parameters. Each parameter
has a specific name, a specific Java type (which may be a primitive value), and
may be <em>optional</em> or <em>required</em>.</p><p>Within a component class,
parameters are declared by using the @<a shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Parameter.html">Parameter</a>
annotation on a private field, as we'll see below.</p><p><span
class="confluence-anchor-link"
id="ComponentParameters-bindingparameters"></span></p><h1
id="ComponentParameters-ParameterBindings">Parameter Bindings</h1><p>In
Tapestry, a parameter is not a slot into which data is pushed: it is a
<em>connection</em> between a field of the component (marked with the
@Parameter annotation) and a property or resource of the component's container.
(Components can be nested, so the container can be either the page or another
component.)</p><div class="navmenu" style="float:r
ight; background:white; margin:3px; padding:3px">
<div class="panel" style="border-width: 1px;"><div class="panelHeader"
style="border-bottom-width: 1px;"><b>Contents</b></div><div
class="panelContent">
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1437945576417 {padding: 0px;}
-div.rbtoc1437945576417 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1437945576417 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1447003260120 {padding: 0px;}
+div.rbtoc1447003260120 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1447003260120 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1437945576417">
+/*]]>*/</style><div class="toc-macro rbtoc1447003260120">
<ul class="toc-indentation"><li><a shape="rect"
href="#ComponentParameters-ParameterBindings">Parameter Bindings</a></li><li><a
shape="rect" href="#ComponentParameters-BindingExpressions">Binding
Expressions</a></li><li><a shape="rect"
href="#ComponentParameters-@Parameterannotation">@Parameter
annotation</a></li><li><a shape="rect"
href="#ComponentParameters-Don'tusethe${...}syntax!">Don't use the ${...}
syntax!</a></li><li><a shape="rect"
href="#ComponentParameters-InformalParameters">Informal
Parameters</a></li><li><a shape="rect"
href="#ComponentParameters-ParametersAreBi-Directional">Parameters Are
Bi-Directional</a></li><li><a shape="rect"
href="#ComponentParameters-InheritedParameterBindings">Inherited Parameter
Bindings</a></li><li><a shape="rect"
href="#ComponentParameters-ComputedParameterBindingDefaults">Computed Parameter
Binding Defaults</a></li><li><a shape="rect"
href="#ComponentParameters-UnboundParameters">Unbound Parameters</a></li><li><a
shape="rect" href="#Compon
entParameters-ParameterTypeCoercion">Parameter Type Coercion</a></li><li><a
shape="rect" href="#ComponentParameters-ParameterNames">Parameter
Names</a></li><li><a shape="rect"
href="#ComponentParameters-DeterminingifBound">Determining if
Bound</a></li><li><a shape="rect"
href="#ComponentParameters-PublishingParameters">Publishing
Parameters</a></li></ul>
</div>
</div></div></div> <p>The connection between a component and a property
(or resource) of its container is called a <em>binding</em>. The binding is
two-way: the component can read the bound property by reading its parameter
field. Likewise, a component that updates its parameter field will update the
bound property.</p><p>This is important in a lot of cases; for example a
TextField component can read <em>and update</em> the property bound to its
value parameter. It reads the value when rendering, but updates the value when
the form is submitted.</p><p>The component listed below is a looping component;
it renders its body a number of times, defined by its <code>start</code> and
<code>end</code> parameters (which set the boundaries of the loop). The
component can update a <code>result</code> parameter bound to a property of its
container; it will automatically count up or down depending on whether
<code>start</code> or <code>end</code> is larger.</p><div class="code panel
pdl" st
yle="border-width: 1px;"><div class="codeContent panelContent pdl">
Modified: websites/production/tapestry/content/component-reference.html
==============================================================================
--- websites/production/tapestry/content/component-reference.html (original)
+++ websites/production/tapestry/content/component-reference.html Sun Nov 8
17:21:51 2015
@@ -97,11 +97,11 @@
</div>
</li></ul>
</div><p> </p><p><strong>Contents</strong></p><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1437941979247 {padding: 0px;}
-div.rbtoc1437941979247 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1437941979247 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1447003181301 {padding: 0px;}
+div.rbtoc1447003181301 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1447003181301 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1437941979247">
+/*]]>*/</style></p><div class="toc-macro rbtoc1447003181301">
<ul class="toc-indentation"><li><a shape="rect"
href="#ComponentReference-Tapestry-providedComponents">Tapestry-provided
Components</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#ComponentReference-AJAX-specificComponents">AJAX-specific
Components</a></li><li><a shape="rect"
href="#ComponentReference-BeanDisplaying&Editing">Bean Displaying &
Editing</a></li><li><a shape="rect"
href="#ComponentReference-ConditionalandLoopingComponents">Conditional and
Looping Components</a></li><li><a shape="rect"
href="#ComponentReference-FormComponents">Form Components</a></li><li><a
shape="rect" href="#ComponentReference-Grids,TablesandTrees">Grids, Tables and
Trees</a></li><li><a shape="rect"
href="#ComponentReference-LinksandButtons">Links and Buttons</a></li><li><a
shape="rect" href="#ComponentReference-OutputandMessages">Output and
Messages</a></li><li><a shape="rect"
href="#ComponentReference-Miscellaneous">Miscellaneous</a></li></ul>
</li><li><a shape="rect" href="#ComponentReference-TapestryMixins">Tapestry
Mixins</a></li><li><a shape="rect"
href="#ComponentReference-TapestryPages">Tapestry Pages</a></li><li><a
shape="rect" href="#ComponentReference-BaseComponents">Base
Components</a></li><li><a shape="rect"
href="#ComponentReference-OtherComponentLibraries">Other Component
Libraries</a></li></ul>
Modified: websites/production/tapestry/content/configuration.html
==============================================================================
--- websites/production/tapestry/content/configuration.html (original)
+++ websites/production/tapestry/content/configuration.html Sun Nov 8 17:21:51
2015
@@ -134,11 +134,11 @@
</div>
</li></ul>
</div><h1 id="Configuration-ConfiguringTapestry">Configuring
Tapestry</h1><p>This page discusses all the ways in which Tapestry can be
configured. Tapestry applications are configured almost entirely using Java,
with very little XML at all.</p><p><strong>Contents</strong></p><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1446383974812 {padding: 0px;}
-div.rbtoc1446383974812 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1446383974812 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1447003281945 {padding: 0px;}
+div.rbtoc1447003281945 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1447003281945 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1446383974812">
+/*]]>*/</style></p><div class="toc-macro rbtoc1447003281945">
<ul class="toc-indentation"><li><a shape="rect"
href="#Configuration-XMLconfiguration(web.xml)">XML configuration
(web.xml)</a></li><li><a shape="rect"
href="#Configuration-YourApplication'sModuleClass">Your Application's Module
Class</a></li><li><a shape="rect"
href="#Configuration-ConfigurationSymbolNames">Configuration Symbol
Names</a></li><li><a shape="rect"
href="#Configuration-SettingComponentParameterDefaults">Setting Component
Parameter Defaults</a></li><li><a shape="rect"
href="#Configuration-ConfiguringIgnoredPaths">Configuring Ignored
Paths</a></li><li><a shape="rect"
href="#Configuration-ConfiguringContentTypeMapping">Configuring Content Type
Mapping</a></li><li><a shape="rect"
href="#Configuration-SettingExecutionModes">Setting Execution
Modes</a></li></ul>
</div><h2 id="Configuration-XMLconfiguration(web.xml)">XML configuration
(web.xml)</h2><p>Tapestry runs on top of the standard Java Servlet API. To the
servlet container, such as Tomcat, Tapestry appears as a <em>servlet
filter</em>. This gives Tapestry great flexibility in matching URLs without
requiring lots of XML configuration.</p><p>Although most configuration is done
with Java, a small but necessary amount of configuration occurs inside the
servlet deployment descriptor, WEB-INF/web.xml. Most of the configuration is
boilerplate, nearly the same for all applications.</p><div class="code panel
pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>web.xml (partial)</b></div><div
class="codeContent panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><!DOCTYPE web-app
Modified: websites/production/tapestry/content/default-parameter.html
==============================================================================
--- websites/production/tapestry/content/default-parameter.html (original)
+++ websites/production/tapestry/content/default-parameter.html Sun Nov 8
17:21:51 2015
@@ -67,7 +67,26 @@
</div>
<div id="content">
-<div id="ConfluenceContent"><p>Many of the components provided with Tapestry
share a common behavior: if the component's id matches a property of the
container, then some parameter of the component (usually value) defaults to
that property.</p><div class="aui-label" style="float:right" title="Related
Articles">
+<div id="ConfluenceContent"><p>
+</p><div class="atb-scrollbar-macro">
+ <div class="prev">
+
+ </div>
+ <div class="parent">
+ <a shape="rect" href="cookbook.html" rel="parent">
+ <span class="aui-icon
aui-icon-small atb-icon-arrow-up">Up</span>
+ <span class="title">Cookbook</span>
+ </a>
+
+ </div>
+ <div class="next">
+ <a shape="rect" href="overriding-exception-reporting.html" rel="next">
+ <span class="title">Overriding Exception Reporting</span>
+ <span class="aui-icon aui-icon-small
atb-icon-arrow-right">Next</span>
+ </a>
+
+ </div>
+</div><p>Many of the components provided with Tapestry share a common
behavior: if the component's id matches a property of the container, then some
parameter of the component (usually value) defaults to that property.</p><div
class="aui-label" style="float:right" title="Related Articles">