Modified: websites/production/tapestry/content/ioc-logging.html
==============================================================================
--- websites/production/tapestry/content/ioc-logging.html (original)
+++ websites/production/tapestry/content/ioc-logging.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-module.html
==============================================================================
--- websites/production/tapestry/content/ioc-module.html (original)
+++ websites/production/tapestry/content/ioc-module.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-order.html
==============================================================================
--- websites/production/tapestry/content/ioc-order.html (original)
+++ websites/production/tapestry/content/ioc-order.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-overview.html
==============================================================================
--- websites/production/tapestry/content/ioc-overview.html (original)
+++ websites/production/tapestry/content/ioc-overview.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-parallel.html
==============================================================================
--- websites/production/tapestry/content/ioc-parallel.html (original)
+++ websites/production/tapestry/content/ioc-parallel.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-pipeline.html
==============================================================================
--- websites/production/tapestry/content/ioc-pipeline.html (original)
+++ websites/production/tapestry/content/ioc-pipeline.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-provider.html
==============================================================================
--- websites/production/tapestry/content/ioc-provider.html (original)
+++ websites/production/tapestry/content/ioc-provider.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-run.html
==============================================================================
--- websites/production/tapestry/content/ioc-run.html (original)
+++ websites/production/tapestry/content/ioc-run.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-serialization.html
==============================================================================
--- websites/production/tapestry/content/ioc-serialization.html (original)
+++ websites/production/tapestry/content/ioc-serialization.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-shadow.html
==============================================================================
--- websites/production/tapestry/content/ioc-shadow.html (original)
+++ websites/production/tapestry/content/ioc-shadow.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-startup.html
==============================================================================
--- websites/production/tapestry/content/ioc-startup.html (original)
+++ websites/production/tapestry/content/ioc-startup.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-strategy.html
==============================================================================
--- websites/production/tapestry/content/ioc-strategy.html (original)
+++ websites/production/tapestry/content/ioc-strategy.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-symbols.html
==============================================================================
--- websites/production/tapestry/content/ioc-symbols.html (original)
+++ websites/production/tapestry/content/ioc-symbols.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc.html
==============================================================================
--- websites/production/tapestry/content/ioc.html (original)
+++ websites/production/tapestry/content/ioc.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/javascript-faq.html
==============================================================================
--- websites/production/tapestry/content/javascript-faq.html (original)
+++ websites/production/tapestry/content/javascript-faq.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="JavaScriptFAQ-JavaScript">JavaScript</h1><p>Main articles: <a
href="client-side-javascript.html">Client-Side JavaScript</a>, <a
href="legacy-javascript.html">Legacy JavaScript</a></p><h2
id="JavaScriptFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1711667522862 {padding: 0px;}
-div.rbtoc1711667522862 ul {margin-left: 0px;}
-div.rbtoc1711667522862 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712222147280 {padding: 0px;}
+div.rbtoc1712222147280 ul {margin-left: 0px;}
+div.rbtoc1712222147280 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1711667522862">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712222147280">
<ul class="toc-indentation"><li><a
href="#JavaScriptFAQ-WhydoIgeta"Tapestryisundefined"erroronformsubmit?(5.3andearlier)">Why
do I get a "Tapestry is undefined" error on form submit? (5.3 and
earlier)</a></li><li><a
href="#JavaScriptFAQ-What'sthedifferencebetweentheT5objectandtheTapestryobjectinthebrowser?(5.3andearlier)">What's
the difference between the T5 object and the Tapestry object in the browser?
(5.3 and earlier)</a></li></ul>
</div><h2
id="JavaScriptFAQ-WhydoIgeta"Tapestryisundefined"erroronformsubmit?(5.3andearlier)">Why
do I get a "Tapestry is undefined" error on form submit? (5.3 and
earlier)</h2><p>This client-side error is clear but can be awkward to solve. It
means your browser has not been able to load the tapestry.js file properly. The
question is, why? It can be due to multiple reasons, some of them
below:</p><ul><li>First, check if 'tapestry.js' is present in the head part of
your resulting HTML page.</li><li><p>If you have set the <a
href="configuration.html">tapestry.combine-scripts</a> configuration symbol to
true, Tapestry generates one single URL to retrieve all the JS files.
Sometimes, this can produce long URLs that browsers are unable to retrieve. Try
setting the symbol to false.</p><div class="confluence-information-macro
confluence-information-macro-note"><span class="aui-icon aui-icon-small
aui-iconfont-warning confluence-information-macro-icon"></span><div
class="confluenc
e-information-macro-body"><p>This only applies to Tapestry
5.1.</p></div></div></li><li>If you have included jQuery in conjunction with
Tapestry's prototype, that will cause a conflict with the '$' selector used by
both. In this case, you should put jQuery on top of the stack and turn on the
<a class="external-link" href="http://api.jquery.com/jQuery.noConflict/"
rel="nofollow">jQuery.noConflict</a> mode.</li><li>Also, if you have included a
custom or third-party JS library on top of the stack that causes the JavaScript
parsing to fail, then check the JavaScript syntax in that library.</li><li>If
you have used a tool to minimize your JavaScript libraries, this can lead to
JavaScript syntax errors, so check if it works with all the JavaScript files
unpacked.</li></ul><h2
id="JavaScriptFAQ-What'sthedifferencebetweentheT5objectandtheTapestryobjectinthebrowser?(5.3andearlier)">What's
the difference between the <code>T5</code> object and the
<code>Tapestry</code> object in the browser? (
5.3 and earlier)</h2><p>Both of these objects are <em>namespaces</em>:
containers of functions, constants, and nested namespaces.</p><p>The
<code>T5</code> object is a replacement for the <code>Tapestry</code> object,
starting in release 5.3. Increasingly, functions defined by the
<code>Tapestry</code> object are being replaced with similar or equivalent
functions in the <code>T5</code> object.</p><p>This is part of an overall goal,
spanning at least two releases of Tapestry, to make Tapestry JavaScript
framework agnostic; which is to say, not depend specifically on Prototype or
jQuery. Much of the code in the <code>Tapestry</code> object is specifically
linked to Prototype and Scriptaculous.</p><p>The <code>T5</code> object
represents a stable, documented, set of APIs that are preferred when building
components for maximum portability between underlying JavaScript frameworks. In
other words, when building component libraries, coding to the <code>T5</code>
object ensures that your c
omponent will be useful regardless of whether the final application is built
using Prototype, jQuery or something else.</p></div>
</div>
Modified: websites/production/tapestry/content/javascript-modules.html
==============================================================================
--- websites/production/tapestry/content/javascript-modules.html (original)
+++ websites/production/tapestry/content/javascript-modules.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -205,7 +206,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="ajax-and-zones.html">Ajax and Zones</a>
+ <a href="legacy-javascript.html">Legacy JavaScript</a>
</div>
@@ -214,7 +215,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="legacy-javascript.html">Legacy JavaScript</a>
+ <a href="component-cheat-sheet.html">Component Cheat
Sheet</a>
</div>
@@ -223,7 +224,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="component-cheat-sheet.html">Component Cheat
Sheet</a>
+ <a href="ajax-and-zones.html">Ajax and Zones</a>
</div>
Modified: websites/production/tapestry/content/javascript-rewrite-in-54.html
==============================================================================
--- websites/production/tapestry/content/javascript-rewrite-in-54.html
(original)
+++ websites/production/tapestry/content/javascript-rewrite-in-54.html Thu Apr
4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><div
class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This is a historical document in
which Tapestry's Howard Lewis Ship describes the motivations and plan for
significantly changing Tapestry's client-side functionality starting in
Tapestry 5.4. This plan closely matches the actual results delivered in
Tapestry 5.4, but this document is mostly kept for historical
reference.</p></div></div><h2
id="JavaScriptRewritein5.4-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1669470766090 {padding: 0px;}
-div.rbtoc1669470766090 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470766090 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712221961050 {padding: 0px;}
+div.rbtoc1712221961050 ul {margin-left: 0px;}
+div.rbtoc1712221961050 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470766090">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712221961050">
<ul class="toc-indentation"><li><a
href="#JavaScriptRewritein5.4-TapestryandJavaScript">Tapestry and
JavaScript</a></li><li><a
href="#JavaScriptRewritein5.4-TapestryJavaScriptLimitations(through5.3)">Tapestry
JavaScript Limitations (through 5.3)</a>
<ul class="toc-indentation"><li><a
href="#JavaScriptRewritein5.4-DependenceonPrototype/Scriptaculous">Dependence
on Prototype/Scriptaculous</a></li><li><a
href="#JavaScriptRewritein5.4-LackofDocumentation">Lack of
Documentation</a></li><li><a
href="#JavaScriptRewritein5.4-LackofModuleStructure">Lack of Module
Structure</a></li><li><a
href="#JavaScriptRewritein5.4-ComplexInitialization">Complex
Initialization</a></li></ul>
</li><li><a
href="#JavaScriptRewritein5.4-JavaScriptImprovementsfor5.4">JavaScript
Improvements for 5.4</a>
Modified: websites/production/tapestry/content/javascript.html
==============================================================================
--- websites/production/tapestry/content/javascript.html (original)
+++ websites/production/tapestry/content/javascript.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/jmx-module.html
==============================================================================
--- websites/production/tapestry/content/jmx-module.html (original)
+++ websites/production/tapestry/content/jmx-module.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/json.html
==============================================================================
--- websites/production/tapestry/content/json.html (original)
+++ websites/production/tapestry/content/json.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/key-features-v2.html
==============================================================================
--- websites/production/tapestry/content/key-features-v2.html (original)
+++ websites/production/tapestry/content/key-features-v2.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/key-features.html
==============================================================================
--- websites/production/tapestry/content/key-features.html (original)
+++ websites/production/tapestry/content/key-features.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/layout-component.html
==============================================================================
--- websites/production/tapestry/content/layout-component.html (original)
+++ websites/production/tapestry/content/layout-component.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/legacy-javascript.html
==============================================================================
--- websites/production/tapestry/content/legacy-javascript.html (original)
+++ websites/production/tapestry/content/legacy-javascript.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -142,7 +143,7 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><div
class="confluence-information-macro confluence-information-macro-warning"><p
class="title">For Older Versions of Tapestry</p><span class="aui-icon
aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p class="confluence-link">This page
describes JavaScript usage in Tapestry versions up through 5.3.x. For version
5.4 and later, see <a href="client-side-javascript.html">Client-Side
JavaScript</a>.</p></div></div><p
class="confluence-link"><strong>JavaScript</strong> is a first-class concept in
Tapestry, and sophisticated JavaScript support is provided right out of the
box, including rich <a href="ajax-and-zones.html">Ajax and Zones</a>, download
optimization, client-side logging, and localization.</p><div class="aui-label"
style="float:right" title="Related Articles">
+ <div id="ConfluenceContent"><div
class="confluence-information-macro confluence-information-macro-warning"><p
class="title conf-macro-render">For Older Versions of Tapestry</p><span
class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p class="confluence-link">This page
describes JavaScript usage in Tapestry versions up through 5.3.x. For version
5.4 and later, see <a href="client-side-javascript.html">Client-Side
JavaScript</a>.</p></div></div><p
class="confluence-link"><strong>JavaScript</strong> is a first-class concept in
Tapestry, and sophisticated JavaScript support is provided right out of the
box, including rich <a href="ajax-and-zones.html">Ajax and Zones</a>, download
optimization, client-side logging, and localization.</p><div class="aui-label"
style="float:right" title="Related Articles">
@@ -160,7 +161,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="ajax-and-zones.html">Ajax and Zones</a>
+ <a href="legacy-javascript.html">Legacy JavaScript</a>
</div>
@@ -169,7 +170,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="legacy-javascript.html">Legacy JavaScript</a>
+ <a href="ajax-and-zones.html">Ajax and Zones</a>
</div>
Modified: websites/production/tapestry/content/limitations.html
==============================================================================
--- websites/production/tapestry/content/limitations.html (original)
+++ websites/production/tapestry/content/limitations.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="Limitations-Limitations">Limitations</h1><h2
id="Limitations-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1669470786536 {padding: 0px;}
-div.rbtoc1669470786536 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470786536 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712222004743 {padding: 0px;}
+div.rbtoc1712222004743 ul {margin-left: 0px;}
+div.rbtoc1712222004743 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470786536">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712222004743">
<ul class="toc-indentation"><li><a
href="#Limitations-HowdoIaddnewcomponentstoanexistingpagedynamically?">How do I
add new components to an existing page dynamically?</a></li><li><a
href="#Limitations-Whydoesn'tmyserviceimplementationreloadwhenIchangeit?">Why
doesn't my service implementation reload when I change it?</a></li><li><a
href="#Limitations-HowdoIrunmultipleTapestryapplicationsinthesamewebapplication?">How
do I run multiple Tapestry applications in the same web
application?</a></li></ul>
</div><h2
id="Limitations-HowdoIaddnewcomponentstoanexistingpagedynamically?">How do I
add new components to an existing page dynamically?</h2><p>The short answer
here is: <strong>you don't</strong>. The long answer here is <strong>you don't
have to, to get the behavior you desire</strong>.</p><p>One of Tapestry basic
values is high scalability: this is expressed in a number of ways, reflecting
scalability concerns within a single server, and within a cluster of
servers.</p><p>Although you code Tapestry pages and components as if they were
ordinary POJOs (<span>Plain Old Java Objects -- Tapestry does not require you
to extend any base classes or implement any special interfaces)</span><span>,
as deployed by Tapestry they are closer to a traditional servlet: a single
instance of each page services requests from multiple threads. Behind the
scenes, Tapestry transforms you code, rewriting it on the
fly.</span></p><p>What this means is that <em>any</em> incoming request must be
handled
by a <em>single page instance</em>. Therefore, Tapestry enforces the concept
of <strong>static structure, dynamic behavior</strong>.</p><p>Tapestry provides
quite a number of ways to vary what content is rendered, well beyond simple
conditionals and loops. It is possible to "drag in" components from other pages
when rendering a page (other FAQs will expand on this concept). The point is,
that although a Tapestry page's structure is very rigid, the order in which the
components of the page render does not have to be top to bottom.</p><h2
id="Limitations-Whydoesn'tmyserviceimplementationreloadwhenIchangeit?">Why
doesn't my service implementation reload when I change it?</h2><p>Main article:
<a href="service-implementation-reloading.html">Service Implementation
Reloading</a></p><p>Live service reloading has some limitations:</p><ul><li>The
service must define a service interface.</li><li>The service implementation
must be on the file system (not inside a JAR).</li><li>The implementatio
n must be instantiated by Tapestry, not inside code (even code inside a module
class).</li><li>The service must use the default <a
href="limitations.html">scope</a> (reloading of perthread scopes is not
supported).</li></ul><p>Consider the following example module:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<pre><code class="language-java">public static void bind(ServiceBinder binder)
Modified: websites/production/tapestry/content/link-components-faq.html
==============================================================================
--- websites/production/tapestry/content/link-components-faq.html (original)
+++ websites/production/tapestry/content/link-components-faq.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="LinkComponentsFAQ-LinkComponents">Link Components</h1><p>Main Articles: <a
href="page-navigation.html">Page Navigation</a>, <a
href="component-parameters.html">Component Parameters</a></p><h2
id="LinkComponentsFAQ-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1669470770068 {padding: 0px;}
-div.rbtoc1669470770068 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470770068 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712221969382 {padding: 0px;}
+div.rbtoc1712221969382 ul {margin-left: 0px;}
+div.rbtoc1712221969382 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470770068">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712221969382">
<ul class="toc-indentation"><li><a
href="#LinkComponentsFAQ-HowdoIaddqueryparameterstoaPageLinkorActionLink?">How
do I add query parameters to a PageLink or ActionLink?</a></li><li><a
href="#LinkComponentsFAQ-HowdoIcreateaLinkbacktothecurrentpagefromacomponent?">How
do I create a Link back to the current page from a component?</a></li></ul>
</div><h2
id="LinkComponentsFAQ-HowdoIaddqueryparameterstoaPageLinkorActionLink?">How do
I add query parameters to a PageLink or ActionLink?</h2><p>These components do
not have parameters to allow you to specify query parameters for the link; they
both allow you to specify a <em>context</em> (one or more values to encode into
the request path).</p><p>However, you can accomplish the same thing with a
little code and markup. For example, to create a link to another page and pass
a query parameter, you can replace your PageLink component with a standard
<code><a></code> tag:</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
<pre><code class="language-xml"><a href="${profilePageLink}">Display
Profile (w/ full details)</a>
Modified:
websites/production/tapestry/content/loading-the-project-into-eclipse.html
==============================================================================
--- websites/production/tapestry/content/loading-the-project-into-eclipse.html
(original)
+++ websites/production/tapestry/content/loading-the-project-into-eclipse.html
Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/localization.html
==============================================================================
--- websites/production/tapestry/content/localization.html (original)
+++ websites/production/tapestry/content/localization.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -195,7 +196,7 @@
</div>
-<p>Localization support is well integrated into Tapestry. Tapestry allows you
to easily separate the text you present to your users from the rest of your
application ... pull it out of your Java code and even out of your component
templates. You can then translate your messages into other languages and let
Tapestry put everything together.</p><h2
id="Localization-ComponentMessageCatalogs">Component Message
Catalogs</h2><p>Each component class may have a component message catalog. A
component message catalog is a set of files with the extension ".properties".
These property files are the same format used by java.util.ResourceBundle, just
lines of <code>key=value</code>. These files are stored on the classpath, in
the same package folder as the page or component's compiled Java
class.</p><p>So for a class named <code>org.example.myapp.pages.MyPage</code>,
you would have a main properties file as
<code>org/example/myapp/pages/MyPage.properties</code>.</p><p>If you have a
translations o
f these values, you provide additional properties file, adding an <a
class="external-link"
href="http://www.loc.gov/standards/iso639-2/englangn.html" rel="nofollow">ISO
language code</a> before the extension. Thus, if you have a French translation,
you could create a file <code>MyPage_fr.properties</code>.</p><p>Any values in
the more language specific file will <em>override</em> values from the main
properties file. If you had an even more specific localization for just French
as spoken in France, you could create <code>MyPage_fr_FR.properties</code>
(that's a language code plus a country code, and you can even go further and
add variants ... but its unlikely that you'll ever need to go beyond just
language codes in practice).</p><p>The messages in the catalog are accessed by
keys. Tapestry ignores the case of the keys when accessing messages in the
catalog.</p><h3 id="Localization-ComponentMessageCatalogInheritance">Component
Message Catalog Inheritance</h3><p>If a component class
is a subclass of another component class, then it inherits that base class'
message catalog. Its own message catalog extends and overrides the values
inherited from the base class.</p><p>In this way, you could have a base
component class that contained common messages, and extend or override those
messages in subclasses (just as you would extend or override the methods of the
base component class). This, of course, works for as many levels of inheritance
as you care to support.</p><h2
id="Localization-Application-wideMessageCatalog">Application-wide Message
Catalog</h2><p>If the file
<code>WEB-INF/</code><em>AppName</em><code>.properties</code> exists in the
context, it will be used as an application-wide message catalog. The
<em>AppName</em> is derived from the name of the filter inside the web.xml
file; this is most often just "app", thus <code>WEB-INF/app.properties</code>.
The search for the file is case sensitive. The properties files may be
localized.</p><p>Individual pages a
nd components can override the values defined in the message catalog.</p><div
class="confluence-information-macro confluence-information-macro-warning"><p
class="title">Avoid BOMs</p><span class="aui-icon aui-icon-small
aui-iconfont-error confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>Make sure that your properties
files don't contain <a class="external-link"
href="http://en.wikipedia.org/wiki/Byte_order_mark" rel="nofollow">byte order
marks (BOM)</a>, because Java – and thus Tapestry –
doesn't support BOM in properties files (see <a class="external-link"
href="http://bugs.sun.com/view_bug.do?bug_id=4508058"
rel="nofollow">http://bugs.sun.com/view_bug.do?bug_id=4508058</a>). Some
editors write them out when saving a file in UTF-8, so watch
out.</p></div></div><h2 id="Localization-PropertiesFileCharset">Properties File
Charset</h2><p>Tapestry uses the <code>UTF-8</code> character set (charset)
when reading the pr
operties files in a message catalog. This means that you don't have to use the
Java <code>native2ascii</code> tool.</p><h2
id="Localization-LocalizedComponentTemplates">Localized Component
Templates</h2><p>The same lookup mechanism applies to component templates.
Tapestry will search for a localized version of each component template and use
the closest match. Thus you could have <code>MyPage_fr.html</code> for French
users, and <code>MyPage.html</code> for all other users.</p><h2
id="Localization-AccessingLocalizedMessages">Accessing Localized
Messages</h2><p>The above discusses what files to create and where to store
them, but doesn't address how to make use of that information.</p><p>Messages
can be accessed in one of two ways:</p><ul><li>Using the "message:" <a
href="component-parameters.html">binding expression</a> in a component
template</li><li>By injecting the component's Messages object In the first
case, you may use the message: binding prefix with component parameters, or
with template expansions:</li></ul><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<p>Localization support is well integrated into Tapestry. Tapestry allows you
to easily separate the text you present to your users from the rest of your
application ... pull it out of your Java code and even out of your component
templates. You can then translate your messages into other languages and let
Tapestry put everything together.</p><h2
id="Localization-ComponentMessageCatalogs">Component Message
Catalogs</h2><p>Each component class may have a component message catalog. A
component message catalog is a set of files with the extension ".properties".
These property files are the same format used by java.util.ResourceBundle, just
lines of <code>key=value</code>. These files are stored on the classpath, in
the same package folder as the page or component's compiled Java
class.</p><p>So for a class named <code>org.example.myapp.pages.MyPage</code>,
you would have a main properties file as
<code>org/example/myapp/pages/MyPage.properties</code>.</p><p>If you have a
translations o
f these values, you provide additional properties file, adding an <a
class="external-link"
href="http://www.loc.gov/standards/iso639-2/englangn.html" rel="nofollow">ISO
language code</a> before the extension. Thus, if you have a French translation,
you could create a file <code>MyPage_fr.properties</code>.</p><p>Any values in
the more language specific file will <em>override</em> values from the main
properties file. If you had an even more specific localization for just French
as spoken in France, you could create <code>MyPage_fr_FR.properties</code>
(that's a language code plus a country code, and you can even go further and
add variants ... but its unlikely that you'll ever need to go beyond just
language codes in practice).</p><p>The messages in the catalog are accessed by
keys. Tapestry ignores the case of the keys when accessing messages in the
catalog.</p><h3 id="Localization-ComponentMessageCatalogInheritance">Component
Message Catalog Inheritance</h3><p>If a component class
is a subclass of another component class, then it inherits that base class'
message catalog. Its own message catalog extends and overrides the values
inherited from the base class.</p><p>In this way, you could have a base
component class that contained common messages, and extend or override those
messages in subclasses (just as you would extend or override the methods of the
base component class). This, of course, works for as many levels of inheritance
as you care to support.</p><h2
id="Localization-Application-wideMessageCatalog">Application-wide Message
Catalog</h2><p>If the file
<code>WEB-INF/</code><em>AppName</em><code>.properties</code> exists in the
context, it will be used as an application-wide message catalog. The
<em>AppName</em> is derived from the name of the filter inside the web.xml
file; this is most often just "app", thus <code>WEB-INF/app.properties</code>.
The search for the file is case sensitive. The properties files may be
localized.</p><p>Individual pages a
nd components can override the values defined in the message catalog.</p><div
class="confluence-information-macro confluence-information-macro-warning"><p
class="title conf-macro-render">Avoid BOMs</p><span class="aui-icon
aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>Make sure that your properties
files don't contain <a class="external-link"
href="http://en.wikipedia.org/wiki/Byte_order_mark" rel="nofollow">byte order
marks (BOM)</a>, because Java – and thus Tapestry –
doesn't support BOM in properties files (see <a class="external-link"
href="http://bugs.sun.com/view_bug.do?bug_id=4508058"
rel="nofollow">http://bugs.sun.com/view_bug.do?bug_id=4508058</a>). Some
editors write them out when saving a file in UTF-8, so watch
out.</p></div></div><h2 id="Localization-PropertiesFileCharset">Properties File
Charset</h2><p>Tapestry uses the <code>UTF-8</code> character set (charset) w
hen reading the properties files in a message catalog. This means that you
don't have to use the Java <code>native2ascii</code> tool.</p><h2
id="Localization-LocalizedComponentTemplates">Localized Component
Templates</h2><p>The same lookup mechanism applies to component templates.
Tapestry will search for a localized version of each component template and use
the closest match. Thus you could have <code>MyPage_fr.html</code> for French
users, and <code>MyPage.html</code> for all other users.</p><h2
id="Localization-AccessingLocalizedMessages">Accessing Localized
Messages</h2><p>The above discusses what files to create and where to store
them, but doesn't address how to make use of that information.</p><p>Messages
can be accessed in one of two ways:</p><ul><li>Using the "message:" <a
href="component-parameters.html">binding expression</a> in a component
template</li><li>By injecting the component's Messages object In the first
case, you may use the message: binding prefix with compon
ent parameters, or with template expansions:</li></ul><div class="code panel
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre><code class="language-java"><t:layout title="message:page-title">
${message:greeting}, ${user.name}!
Modified: websites/production/tapestry/content/logging-in-tapestry.html
==============================================================================
--- websites/production/tapestry/content/logging-in-tapestry.html (original)
+++ websites/production/tapestry/content/logging-in-tapestry.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/logging.html
==============================================================================
--- websites/production/tapestry/content/logging.html (original)
+++ websites/production/tapestry/content/logging.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/mailing-lists.html
==============================================================================
--- websites/production/tapestry/content/mailing-lists.html (original)
+++ websites/production/tapestry/content/mailing-lists.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/maven-support-faq.html
==============================================================================
--- websites/production/tapestry/content/maven-support-faq.html (original)
+++ websites/production/tapestry/content/maven-support-faq.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="MavenSupportFAQ-MavenSupport">Maven Support</h1><h2
id="MavenSupportFAQ-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1669470838286 {padding: 0px;}
-div.rbtoc1669470838286 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470838286 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712222115618 {padding: 0px;}
+div.rbtoc1712222115618 ul {margin-left: 0px;}
+div.rbtoc1712222115618 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470838286">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712222115618">
<ul class="toc-indentation"><li><a
href="#MavenSupportFAQ-WhydoMavenprojectnamesandotherdetailsshowupinmypages?">Why
do Maven project names and other details show up in my pages?</a></li></ul>
</div><h2
id="MavenSupportFAQ-WhydoMavenprojectnamesandotherdetailsshowupinmypages?">Why
do Maven project names and other details show up in my pages?</h2><p>Tapestry
and maven both use the same syntax for dynamic portions of files: the
<code>${...</code>} syntax. When Maven is copying resources from
<code>src/main/resources</code>, and when filtering is <em>enabled</em> (which
is not the default), then any expansions in <em>Tapestry templates</em> that
match against Maven project properties are substituted. If you look at the
deployed application you'll see that <code>${name</code>} is gone, replaced
with your project's name!</p><p>The solution is to update your
<code>pom.xml</code> and ignore any .tml files when copying and
filtering:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>pom.xml
(partial)</b></div><div class="codeContent panelContent pdl">
<pre><code class="language-xml"> <resource>
Modified: websites/production/tapestry/content/menuleft.html
==============================================================================
--- websites/production/tapestry/content/menuleft.html (original)
+++ websites/production/tapestry/content/menuleft.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified:
websites/production/tapestry/content/meta-programming-page-content.html
==============================================================================
--- websites/production/tapestry/content/meta-programming-page-content.html
(original)
+++ websites/production/tapestry/content/meta-programming-page-content.html Thu
Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/modules.html
==============================================================================
--- websites/production/tapestry/content/modules.html (original)
+++ websites/production/tapestry/content/modules.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/navigation.html
==============================================================================
--- websites/production/tapestry/content/navigation.html (original)
+++ websites/production/tapestry/content/navigation.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -182,7 +183,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/navigationv2.html
==============================================================================
--- websites/production/tapestry/content/navigationv2.html (original)
+++ websites/production/tapestry/content/navigationv2.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/news.html
==============================================================================
--- websites/production/tapestry/content/news.html (original)
+++ websites/production/tapestry/content/news.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/object-providers.html
==============================================================================
--- websites/production/tapestry/content/object-providers.html (original)
+++ websites/production/tapestry/content/object-providers.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/operation-tracker.html
==============================================================================
--- websites/production/tapestry/content/operation-tracker.html (original)
+++ websites/production/tapestry/content/operation-tracker.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ordering-by-constraints.html
==============================================================================
--- websites/production/tapestry/content/ordering-by-constraints.html (original)
+++ websites/production/tapestry/content/ordering-by-constraints.html Thu Apr
4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified:
websites/production/tapestry/content/overriding-exception-reporting.html
==============================================================================
--- websites/production/tapestry/content/overriding-exception-reporting.html
(original)
+++ websites/production/tapestry/content/overriding-exception-reporting.html
Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified:
websites/production/tapestry/content/page-and-component-classes-faq.html
==============================================================================
--- websites/production/tapestry/content/page-and-component-classes-faq.html
(original)
+++ websites/production/tapestry/content/page-and-component-classes-faq.html
Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="PageAndComponentClassesFAQ-PageAndComponentClasses">Page And Component
Classes</h1><p>Main article: <a href="component-classes.html">Component
Classes</a></p><h2
id="PageAndComponentClassesFAQ-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1669470738602 {padding: 0px;}
-div.rbtoc1669470738602 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470738602 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712221903360 {padding: 0px;}
+div.rbtoc1712221903360 ul {margin-left: 0px;}
+div.rbtoc1712221903360 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470738602">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712221903360">
<ul class="toc-indentation"><li><a
href="#PageAndComponentClassesFAQ-What'sthedifferencebetweenapageandacomponent?">What's
the difference between a page and a component?</a></li><li><a
href="#PageAndComponentClassesFAQ-HowdoIstoremypageclassesinadifferentpackage?">How
do I store my page classes in a different package?</a></li><li><a
href="#PageAndComponentClassesFAQ-Whydomyinstancevariableshavetobeprivate?">Why
do my instance variables have to be private?</a></li><li><a
href="#PageAndComponentClassesFAQ-Whydon'tmyinformalparametersshowupintherenderedmarkup?">Why
don't my informal parameters show up in the rendered markup?</a></li><li><a
href="#PageAndComponentClassesFAQ-WhydoIgetjava.lang.LinkageErrorwhenIinvokepublicmethodsofmypageclasses?">Why
do I get java.lang.LinkageError when I invoke public methods of my page
classes?</a></li><li><a
href="#PageAndComponentClassesFAQ-Whichisbetter,usingmagicmethodnames(i.e.,beginRender())orannotations(i.e.BeginRender)?">Which
is better, using
magic method names (i.e., beginRender()) or annotations (i.e.
BeginRender)?</a></li><li><a
href="#PageAndComponentClassesFAQ-WhydoIhavetoinjectapage?Whycan'tIjustcreateoneusingnew?">Why
do I have to inject a page? Why can't I just create one using
new?</a></li></ul>
</div><h2
id="PageAndComponentClassesFAQ-What'sthedifferencebetweenapageandacomponent?">What's
the difference between a page and a component?</h2><p>There's very little
difference between the two. Pages classes must be in the
<em>root-package</em>.<code>pages</code> package; components must be in the
<em>root-package</em>.<code>components</code>. Pages may provide event handlers
for certain page-specific events (such as activate and passivate). Components
may have parameters.</p><p>Other than that, they are more equal than they are
different. They may have templates or may render themselves in code (pages
usually have a template, components are more likely to render only in
code).</p><p>The major difference is that Tapestry page templates may be stored
in the web context directory, as if they were static files (they can't be
accessed from the client however; a specific rule prevents access to files with
the <code>.tml</code> extension).</p><div class="confluence-information-macro co
nfluence-information-macro-warning"><span class="aui-icon aui-icon-small
aui-iconfont-error confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>It is possible that this feature
may be removed in a later release. It is preferred that page templates be
stored on the classpath, like component templates.</p></div></div><h2
id="PageAndComponentClassesFAQ-HowdoIstoremypageclassesinadifferentpackage?">How
do I store my page classes in a different package?</h2><p>Tapestry is very
rigid here; you can't. Page classes must go in
<em>root-package</em>.<code>pages</code>, component classes in
<em>root-package</em>.<code>components</code>, etc.</p><p>You are allowed to
create sub-packages, to help organize your code better and more logically. For
example, you might have
<em>root-package</em>.<code>pages.account.ViewAccount</code>, which would have
the page name "account/viewaccount". (<span>Tapestry would also create an alias
"account/view", by stripping of
f the redundant "account" suffix. Either name is equally valid in your code,
and Tapestry will use the shorter name, "account/view" in
URLs.)</span></p><p>In addition, it is possible to define additional root
packages for the application:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre><code class="language-java">public static void
contributeComponentClassResolver(Configuration<LibraryMapping>
configuration) {
@@ -182,13 +183,13 @@ public class DBImage
-<span class="gliffy-container" id="gliffy-container-23527573-6449"
data-fullwidth="750" data-size="L" data-ceoid="23335008"
data-edit="${diagramEditLink.getLinkUrl()}"
data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Class Loaders">
+<span class="gliffy-container" id="gliffy-container-23527573-4049"
data-fullwidth="750" data-size="L" data-ceoid="23335008"
data-edit="${diagramEditLink.getLinkUrl()}"
data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Class Loaders">
- <map id="gliffy-map-23527573-3061" name="gliffy-map-23527573-3061"></map>
+ <map id="gliffy-map-23527573-9658" name="gliffy-map-23527573-9658"></map>
- <img class="gliffy-image" id="gliffy-image-23527573-6449" width="750"
height="425" data-full-width="750" data-full-height="425"
src="https://cwiki.apache.org/confluence/download/attachments/23335008/Class%20Loaders.png?version=4&modificationDate=1283534469000&api=v2"
alt="Class Loaders" usemap="#gliffy-map-23527573-3061">
+ <img class="gliffy-image" id="gliffy-image-23527573-4049" width="750"
height="425" data-full-width="750" data-full-height="425"
src="https://cwiki.apache.org/confluence/download/attachments/23335008/Class%20Loaders.png?version=4&modificationDate=1283534469000&api=v2"
alt="Class Loaders" usemap="#gliffy-map-23527573-9658">
- <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-6449"
name="gliffy-dynamic-map-23527573-6449"></map>
+ <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-4049"
name="gliffy-dynamic-map-23527573-4049"></map>
</span>
</p><p>In a Tapestry application, most application classes are loaded from the
middle class loader. Additional class loaders are used to support live service
reloading, and live component reloading (along with component class
transformation).</p><p>When a page or component is passed as a parameter to a
service, a failure occurs (how it is reported varies in different JDK releases)
because of the class mismatch.</p><p>The solution is to define an interface
with the methods that the service will invoke on the page or component
instance. The service will expect an object implementing the interface (and
doesn't care what class loader loaded the implementing class).</p><p>Just be
sure to put the interface class in a non-controlled package, such as your
application's <em>root-package</em> (and <strong>not</strong>
<em>root-package</em>.<code>pages</code>).</p><h2
id="PageAndComponentClassesFAQ-Whichisbetter,usingmagicmethodnames(i.e.,beginRender())orannotations(i.e.BeginRender)?">Which
is
better, using magic method names (i.e., <code>beginRender()</code>) or
annotations (i.e. <code>BeginRender</code>)?</h2><p>There is no single best
way; this is where your taste may vary. Historically, the annotations came
first, and the method naming conventions came later.</p><p>The advantage of
using the method naming conventions is that the method names are more concise,
which fewer characters to type, and fewer classes to import.</p><p>The main
disadvantage of the method naming conventions is that the method names are not
meaningful. <code>onSuccessFromLoginForm()</code> is a less meaningful name
than <code>storeUserCredentialsAndReturnToProductsPage()</code>, for
example.</p><p>The second disadvantage is you are more susceptible to
off-by-a-character errors. For example, <code>onSucessFromLoginForm()</code>
will <em>never</em> be called because the event name is misspelled; this would
not happen using the annotation approach:</p><div class="code panel pdl"
style="border-width:
1px;"><div class="codeContent panelContent pdl">
Modified: websites/production/tapestry/content/page-and-component-classes.html
==============================================================================
--- websites/production/tapestry/content/page-and-component-classes.html
(original)
+++ websites/production/tapestry/content/page-and-component-classes.html Thu
Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/page-life-cycle.html
==============================================================================
--- websites/production/tapestry/content/page-life-cycle.html (original)
+++ websites/production/tapestry/content/page-life-cycle.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache