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 Feb 25 21:24:42 2018 @@ -66,6 +66,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Ajax Components FAQ</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -78,11 +93,11 @@ <div id="content"> <div id="ConfluenceContent"><h1 id="AjaxComponentsFAQ-AjaxComponents">Ajax Components</h1><p>Main article: <a href="ajax-and-zones.html">Ajax and Zones</a></p><h2 id="AjaxComponentsFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1519068036620 {padding: 0px;} -div.rbtoc1519068036620 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1519068036620 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1519593697948 {padding: 0px;} +div.rbtoc1519593697948 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1519593697948 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1519068036620"> +/*]]>*/</style></p><div class="toc-macro rbtoc1519593697948"> <ul class="toc-indentation"><li><a href="#AjaxComponentsFAQ-DoIhavetospecifybothidandt:idforZonecomponents?">Do I have to specify both id and t:id for Zone components?</a></li><li><a href="#AjaxComponentsFAQ-HowdoIupdatethecontentofaZonefromaneventhandlermethod?">How do I update the content of a Zone from an event handler method?</a></li><li><a href="#AjaxComponentsFAQ-HowtoIupdatemultiplezonesinasingleeventhandler?">How to I update multiple zones in a single event handler?</a></li><li><a href="#AjaxComponentsFAQ-What'sthatweirdnumberinthemiddleoftheclientidsafteraZoneisupdated?">What's that weird number in the middle of the client ids after a Zone is updated?</a></li><li><a href="#AjaxComponentsFAQ-WhydoIsometimesgettheexception"Therenderedcontentdidnotincludeanyelementsthatallowforthepositioningofthehiddenformfield'selement."whenrenderinganemptyZone?">Why do I sometimes get the exception "The rendered content did not include any elements that allow for the positioni ng of the hidden form field's element." when rendering an empty Zone?</a></li></ul> </div><h2 id="AjaxComponentsFAQ-DoIhavetospecifybothidandt:idforZonecomponents?">Do I have to specify both <code>id</code> and <code>t:id</code> for Zone components?</h2><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 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> p arameter of the triggering component (such as a Form, PageLink, ActionLink, etc.).</p><h2 id="AjaxComponentsFAQ-HowdoIupdatethecontentofaZonefromaneventhandlermethod?">How do I update the content of a Zone from an event handler method?</h2><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">
Modified: websites/production/tapestry/content/ajax-components.html ============================================================================== --- websites/production/tapestry/content/ajax-components.html (original) +++ websites/production/tapestry/content/ajax-components.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Ajax Components</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/ajax-javascript.html ============================================================================== --- websites/production/tapestry/content/ajax-javascript.html (original) +++ websites/production/tapestry/content/ajax-javascript.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Ajax & JavaScript</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/aliases.html ============================================================================== --- websites/production/tapestry/content/aliases.html (original) +++ websites/production/tapestry/content/aliases.html Sun Feb 25 21:24:42 2018 @@ -64,6 +64,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Aliases</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -77,10 +92,11 @@ <div id="content"> <div id="ConfluenceContent"><p> </p><p>  -Use ServiceOverrides instead. Aliases will be removed starting in 5.3. -</p><div class="aui-message aui-message-warning"> -Deprecated since 5.2 | -  +</p><div class="aui-message aui-message-warning macro-deprecated"><b class="param-deprecated">Deprecated since 5.2</b> + + <span class="param-message">— Use ServiceOverrides instead. Aliases will be removed starting in 5.3.</span> + + </div><div class="aui-label" style="float:right" title="Related Articles"> Modified: websites/production/tapestry/content/annotations.html ============================================================================== --- websites/production/tapestry/content/annotations.html (original) +++ websites/production/tapestry/content/annotations.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Annotations</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </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 Feb 25 21:24:42 2018 @@ -64,6 +64,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Application Module Class Cheat Sheet</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -76,11 +91,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.rbtoc1518996049804 {padding: 0px;} -div.rbtoc1518996049804 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1518996049804 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1519593694857 {padding: 0px;} +div.rbtoc1519593694857 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1519593694857 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1518996049804"> +/*]]>*/</style></p><div class="toc-macro rbtoc1519593694857"> <ul class="toc-indentation"><li>Related Articles</li></ul> <ul><li><a href="#ApplicationModuleClassCheatSheet-Namingconventions">Naming conventions</a> <ul class="toc-indentation"><li><a href="#ApplicationModuleClassCheatSheet-Thebindmethod">The bind method</a></li><li><a href="#ApplicationModuleClassCheatSheet-Servicebuildermethods">Service builder methods</a></li><li><a href="#ApplicationModuleClassCheatSheet-Contributemethods">Contribute methods</a> Modified: websites/production/tapestry/content/applications.html ============================================================================== --- websites/production/tapestry/content/applications.html (original) +++ websites/production/tapestry/content/applications.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Applications</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/assets.html ============================================================================== --- websites/production/tapestry/content/assets.html (original) +++ websites/production/tapestry/content/assets.html Sun Feb 25 21:24:42 2018 @@ -65,6 +65,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Assets</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -110,7 +125,7 @@ <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span> </div> <div class="details"> - <a href="request-processing.html">Request Processing</a> + <a href="css.html">CSS</a> </div> @@ -119,7 +134,7 @@ <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span> </div> <div class="details"> - <a href="configuration.html">Configuration</a> + <a href="request-processing.html">Request Processing</a> </div> @@ -128,7 +143,7 @@ <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span> </div> <div class="details"> - <a href="css.html">CSS</a> + <a href="configuration.html">Configuration</a> </div> Modified: websites/production/tapestry/content/autoloading-modules.html ============================================================================== --- websites/production/tapestry/content/autoloading-modules.html (original) +++ websites/production/tapestry/content/autoloading-modules.html Sun Feb 25 21:24:42 2018 @@ -66,6 +66,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Autoloading Modules</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/banner.html ============================================================================== --- websites/production/tapestry/content/banner.html (original) +++ websites/production/tapestry/content/banner.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Banner</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/bannerv2.html ============================================================================== --- websites/production/tapestry/content/bannerv2.html (original) +++ websites/production/tapestry/content/bannerv2.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">BannerV2</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/bean-validation.html ============================================================================== --- websites/production/tapestry/content/bean-validation.html (original) +++ websites/production/tapestry/content/bean-validation.html Sun Feb 25 21:24:42 2018 @@ -66,6 +66,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Bean Validation</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -79,11 +94,10 @@ <div id="content"> <div id="ConfluenceContent"> +<div class="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.2</b> + -<div class="aui-message aui-message-info"> -Added in 5.2 -   </div><p><strong>Bean validation</strong> involves validating user input using Tapestry's built-in support for the <a class="external-link" href="http://jcp.org/en/jsr/detail?id=303" rel="nofollow">JSR 303 Bean Validation API</a>.</p><div class="aui-label" style="float:right" title="Related Articles"> Modified: websites/production/tapestry/content/beaneditform-faq.html ============================================================================== --- websites/production/tapestry/content/beaneditform-faq.html (original) +++ websites/production/tapestry/content/beaneditform-faq.html Sun Feb 25 21:24:42 2018 @@ -66,6 +66,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">BeanEditForm FAQ</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -78,11 +93,11 @@ <div id="content"> <div id="ConfluenceContent"><h1 id="BeanEditFormFAQ-BeanEditForm">BeanEditForm</h1><p>Main Article: <a href="beaneditform-guide.html">BeanEditForm Guide</a></p><h2 id="BeanEditFormFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1519068040277 {padding: 0px;} -div.rbtoc1519068040277 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1519068040277 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1519593721490 {padding: 0px;} +div.rbtoc1519593721490 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1519593721490 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1519068040277"> +/*]]>*/</style></p><div class="toc-macro rbtoc1519593721490"> <ul class="toc-indentation"><li><a href="#BeanEditFormFAQ-WhydoIgetexceptionsaboutinstantiatingabeanwhenusingBeanEditForm?">Why do I get exceptions about instantiating a bean when using BeanEditForm?</a></li><li><a href="#BeanEditFormFAQ-What'sthedifferencebetweenBeanEditorandBeanEditForm?">What's the difference between BeanEditor and BeanEditForm?</a></li><li><a href="#BeanEditFormFAQ-HowdoIcustomizethelayoutoftheBeanEditForm?">How do I customize the layout of the BeanEditForm?</a></li></ul> </div><h2 id="BeanEditFormFAQ-WhydoIgetexceptionsaboutinstantiatingabeanwhenusingBeanEditForm?">Why do I get exceptions about instantiating a bean when using BeanEditForm?</h2><p>When you render a BeanEditForm, or when the rendered form is submitted, Tapestry must instantiate an instance of the object to be edited. This occurs when the BeanEditForm's <code>object</code> parameter is bound to null: Tapestry instantiates an instance of the property type so that the BeanEditForm has an object to read default values from, or to push submitted values into.</p><p>By default, this uses the standard <a href="injection-in-detail.html">injection mechanism</a>, which means that Tapestry will identify the public constructor with the most parameters, and attempt to find objects and other objects for each constructor parameter.</p><p>There's two ways to fine tune this so you don't get errors:</p><ul><li>Place an @<a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apac he/tapestry5/ioc/annotations/Inject.html">Inject</a> annotation on the correct constructor to use (often, the constructor with no parameters).</li></ul><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">public class MyBean { Modified: websites/production/tapestry/content/beaneditform-guide.html ============================================================================== --- websites/production/tapestry/content/beaneditform-guide.html (original) +++ websites/production/tapestry/content/beaneditform-guide.html Sun Feb 25 21:24:42 2018 @@ -66,6 +66,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">BeanEditForm Guide</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/blogs.html ============================================================================== --- websites/production/tapestry/content/blogs.html (original) +++ websites/production/tapestry/content/blogs.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Blogs</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/books.html ============================================================================== --- websites/production/tapestry/content/books.html (original) +++ websites/production/tapestry/content/books.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Books</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/building-tapestry-from-source.html ============================================================================== --- websites/production/tapestry/content/building-tapestry-from-source.html (original) +++ websites/production/tapestry/content/building-tapestry-from-source.html Sun Feb 25 21:24:42 2018 @@ -64,6 +64,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Building Tapestry from Source</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/built-in-mixins.html ============================================================================== --- websites/production/tapestry/content/built-in-mixins.html (original) +++ websites/production/tapestry/content/built-in-mixins.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Built-in Mixins</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/built-in-modules.html ============================================================================== --- websites/production/tapestry/content/built-in-modules.html (original) +++ websites/production/tapestry/content/built-in-modules.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Built In Modules</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Added: websites/production/tapestry/content/cache/main.pageCache ============================================================================== Binary file - no diff available. Propchange: websites/production/tapestry/content/cache/main.pageCache ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Modified: websites/production/tapestry/content/case-insensitivity.html ============================================================================== --- websites/production/tapestry/content/case-insensitivity.html (original) +++ websites/production/tapestry/content/case-insensitivity.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Case Insensitivity</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/chainbuilder-service.html ============================================================================== --- websites/production/tapestry/content/chainbuilder-service.html (original) +++ websites/production/tapestry/content/chainbuilder-service.html Sun Feb 25 21:24:42 2018 @@ -64,6 +64,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">ChainBuilder Service</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/cheat-sheets.html ============================================================================== --- websites/production/tapestry/content/cheat-sheets.html (original) +++ websites/production/tapestry/content/cheat-sheets.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Cheat Sheets</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/class-reloading.html ============================================================================== --- websites/production/tapestry/content/class-reloading.html (original) +++ websites/production/tapestry/content/class-reloading.html Sun Feb 25 21:24:42 2018 @@ -66,6 +66,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Class Reloading</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -111,11 +126,11 @@ <p>One of the best features of Tapestry is automatic reloading of changed classes and templates. <em>Page and component</em> classes will automatically reload when changed. Likewise, changes to component templates and other related resources will also be picked up immediately. In addition, starting in version 5.2, your service classes will also be reloaded automatically after changes (if you're using <a href="ioc.html">Tapestry IoC</a>).</p><h2 id="ClassReloading-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1519071568380 {padding: 0px;} -div.rbtoc1519071568380 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1519071568380 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1519593744483 {padding: 0px;} +div.rbtoc1519593744483 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1519593744483 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1519071568380"> +/*]]>*/</style></p><div class="toc-macro rbtoc1519593744483"> <ul class="toc-indentation"><li><a href="#ClassReloading-TemplateReloading">Template Reloading</a></li><li><a href="#ClassReloading-ClassReloading">Class Reloading</a></li><li><a href="#ClassReloading-PackagesScanned">Packages Scanned</a></li><li><a href="#ClassReloading-FileSystemOnly">File System Only</a></li><li><a href="#ClassReloading-ClassLoaderIssues">Class Loader Issues</a></li><li><a href="#ClassReloading-ClassCastExceptions">ClassCastExceptions</a></li><li><a href="#ClassReloading-HandlingReloadsinyourCode">Handling Reloads in your Code</a></li><li><a href="#ClassReloading-CheckingForUpdates">Checking For Updates</a></li><li><a href="#ClassReloading-TroubleshootingLiveClassReloading">Troubleshooting Live Class Reloading</a> <ul class="toc-indentation"><li><a href="#ClassReloading-QuickChecklist">Quick Checklist</a></li><li><a href="#ClassReloading-IfLiveClassReloadingdoesn'twork">If Live Class Reloading doesn't work</a> <ul class="toc-indentation"><li><a href="#ClassReloading-ProductionMode">Production Mode</a></li><li><a href="#ClassReloading-BuildPathIssues">Build Path Issues</a></li><li><a href="#ClassReloading-BuildingAutomatically">Building Automatically</a></li><li><a href="#ClassReloading-TurnoffJVMhotcodeswapping&automaticrestarts">Turn off JVM hot code swapping & automatic restarts</a></li></ul> Modified: websites/production/tapestry/content/client-side-javascript.html ============================================================================== --- websites/production/tapestry/content/client-side-javascript.html (original) +++ websites/production/tapestry/content/client-side-javascript.html Sun Feb 25 21:24:42 2018 @@ -64,6 +64,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Client-Side JavaScript</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/clustering-issues.html ============================================================================== --- websites/production/tapestry/content/clustering-issues.html (original) +++ websites/production/tapestry/content/clustering-issues.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Clustering Issues</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/coffeescript.html ============================================================================== --- websites/production/tapestry/content/coffeescript.html (original) +++ websites/production/tapestry/content/coffeescript.html Sun Feb 25 21:24:42 2018 @@ -64,6 +64,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">CoffeeScript</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -90,6 +105,15 @@ <div> <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span> </div> + <div class="details"> + <a href="typescript.html">TypeScript</a> + + + </div> + </li><li> + <div> + <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span> </div> + <div class="details"> <a href="coffeescript.html">CoffeeScript</a> Modified: websites/production/tapestry/content/committers.html ============================================================================== --- websites/production/tapestry/content/committers.html (original) +++ websites/production/tapestry/content/committers.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Committers</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/community.html ============================================================================== --- websites/production/tapestry/content/community.html (original) +++ websites/production/tapestry/content/community.html Sun Feb 25 21:24:42 2018 @@ -56,6 +56,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Community</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -68,11 +83,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.rbtoc1518405645567 {padding: 0px;} -div.rbtoc1518405645567 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1518405645567 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1519593674279 {padding: 0px;} +div.rbtoc1519593674279 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1519593674279 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1518405645567"> +/*]]>*/</style></p><div class="toc-macro rbtoc1519593674279"> <ul class="toc-indentation"><li><a href="#Community-GettingInvolved">Getting Involved</a> <ul class="toc-indentation"><li><a href="#Community-ReportingProblems/GettingSupport">Reporting Problems / Getting Support</a></li><li><a href="#Community-ContributingtranslationsforTapestrybuilt-inmessages">Contributing translations for Tapestry built-in messages</a></li><li><a href="#Community-SourceCodeAccess">Source Code Access</a></li><li><a href="#Community-BecomingaContributor">Becoming a Contributor</a></li><li><a href="#Community-BecomingaCommitter">Becoming a Committer</a></li></ul> </li><li><a href="#Community-CommunityContributions">Community Contributions</a> Modified: websites/production/tapestry/content/component-cheat-sheet.html ============================================================================== --- websites/production/tapestry/content/component-cheat-sheet.html (original) +++ websites/production/tapestry/content/component-cheat-sheet.html Sun Feb 25 21:24:42 2018 @@ -64,6 +64,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Component Cheat Sheet</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -100,7 +115,7 @@ <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span> </div> <div class="details"> - <a href="component-reference.html">Component Reference</a> + <a href="templating-and-markup-faq.html">Templating and Markup FAQ</a> </div> @@ -109,7 +124,7 @@ <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span> </div> <div class="details"> - <a href="component-libraries.html">Component Libraries</a> + <a href="component-classes.html">Component Classes</a> </div> @@ -118,7 +133,7 @@ <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span> </div> <div class="details"> - <a href="templating-and-markup-faq.html">Templating and Markup FAQ</a> + <a href="component-reference.html">Component Reference</a> </div> @@ -127,7 +142,7 @@ <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span> </div> <div class="details"> - <a href="component-classes.html">Component Classes</a> + <a href="component-libraries.html">Component Libraries</a> </div> Modified: websites/production/tapestry/content/component-classes.html ============================================================================== --- websites/production/tapestry/content/component-classes.html (original) +++ websites/production/tapestry/content/component-classes.html Sun Feb 25 21:24:42 2018 @@ -65,6 +65,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Component Classes</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -173,10 +188,11 @@ public class HelloWorld </pre> </div></div><p>In this example, just like the first one, the component's only job is to write out a fixed message. The @<a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/BeginRender.html">BeginRender</a> annotation is a type of <em><a href="component-rendering.html">render phase annotation</a></em></p><p>, a method annotation that instructs Tapestry when and under what circumstances to invoke methods of your class.</p><p>These methods are not necessarily public; they can have any access level you like (unlike in Tapestry 4). By convention they usually have package-private access level (the default).</p><h2 id="ComponentClasses-ComponentPackages">Component Packages</h2><p>Component classes must exist within an appropriate package (this is necessary for runtime code transformation and class reloading to operate).</p><p>These packages exist under the application's root package, as follows:</p><ul><li>For pages, place classes in <em>root</em>.<strong>pages</strong>. Page names are mapped to classes within this package.</li><li>For mixins, place classes in <em>root</em>.<strong>mixins</strong>. Mixin types are mapped to classes within this package.</li><li>For other components, place classes in <em>root</em>.<strong>components</strong>. Component types are mapped to classes within this package.</li></ul><p>In addition, it is common for an application to have base classes, often <em>abstract</em> base classes, that should not be directly referenced. These should <em>not</em> go in the <strong>pages</strong>, <strong>components</strong> or <strong>mixins</strong> packages, because they then look like valid pages, components or mixins. Instead, use the <em>root</em>.<strong>base</strong> package to store such base classes.</p><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class ="confluence-information-macro-body"><p>Only component classes should go in any of these controlled packages; classes representing data, or interfaces, or anything that isn't precisely a component class, must go elsewhere. Any top-level class in any of the controlled packages will be transformed at runtime. The only exception is inner classes (anonymous or not), which are loaded by the same class loader as the component class loader, but not transformed as components.</p></div></div><h2 id="ComponentClasses-Sub-Folders/Sub-Packages">Sub-Folders / Sub-Packages</h2><p>Classes do not have to go directly inside the package (pages, components, mixins, etc.). It is valid to create a sub-package to store some of the classes. The sub-package name becomes part of the page name or component type. Thus you might define a page component <code>com.example.myapp.pages.admin.CreateUser</code> and the logical page name (which often shows up inside URLs) will be <strong>admin/CreateUser</strong>.</p ><p>Tapestry performs some simple optimizations of the logical page name (or >component type, or mixin type). It checks to see if the package name is >either a prefix or a suffix of the unqualified class name (case >insensitively, of course) and removes the prefix or suffix if so. The net >result is that a class name such as ><code>com.example.myapp.pages.user.EditUser</code> will have a page name of ><code>user/Edit</code> (instead of user<code>/EditUser</code>). The goal here >is to provide shorter, more natural URLs.</p><h2 >id="ComponentClasses-IndexPages">Index Pages</h2><p>One special >simplification exists for Index pages: if the logical page name is Index >after removing the package name from the unqualified class name, it will map >to the root of that folder. A class such as ><code>com.example.myapp.pages.user.IndexUser</code> or ><code>com.example.myapp.pages.user.UserIndex</code> will have a page name of ><code>user/</code>.</p><p>In previous versions of Tapestry there was also the >con cept of a start page configured with the <code><a href="configuration.html">tapestry.start-page-name</a></code> configuration symbol (defaults to "start"). If a page with a name as configured with that symbol exists at the root level, this page is used as the root URL. This has precedence over an existing Index page. If for example you have a page class <code>com.example.myapp.pages.Start</code> it will map to <code>/</code>.</p><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Use of start-pages is discouraged and support for it will eventually be removed. Use an Index page instead.</p></div></div><h2 id="ComponentClasses-Pagesvs.Components">Pages vs. Components</h2><p>The distinction between pages and component is very, very small. The primary difference is the package name: <em>root</em>.<strong>pages</st rong>.<em>PageName</em> for pages, and <em>root</em>.<strong>components</strong>.<em>ComponentType</em> for components. Conceptually, page components are simply the <em>root component</em> of a page's component tree.</p><p><em>For Tapestry 4 users: there was a much greater distinction in Tapestry 4 between pages and components, which showed up as separate interfaces and a hierarchy of abstract implementations to extend your classes from.</em></p><h2 id="ComponentClasses-ClassTransformation">Class Transformation</h2><p>Tapestry uses your class as a starting point. It <em>transforms</em> your class at runtime. This is necessary for a number of reasons, including to address how Tapestry shares pages between requests.</p><p>For the most part, these transformations are both sensible and invisible. In a few limited cases, they comprise a marginally <a class="external-link" href="http://www.joelonsoftware.com/printerFriendly/articles/LeakyAbstractions.html" rel="nofollow">leaky abstr action</a> – for instance, the scope restrictions on instance variables described below – but the programming model in general supports a very high level of developer productivity.</p><p>Because transformation doesn't occur until <em>runtime</em>, the build stage of your application is not affected by the fact that you are creating a Tapestry application. Further, your classes are absolutely simple POJOs during unit testing.</p><h2 id="ComponentClasses-LiveClassReloading">Live Class Reloading</h2><p>Main Article: <a href="class-reloading.html">Class Reloading</a></p><p>Component classes are monitored for changes by the framework. <a href="class-reloading.html">Classes are reloaded when changed</a>. This allows you to build your application with a speed approaching that of a scripting environment, without sacrificing any of the power of the Java platform.</p><p>And it's fast! You won't even notice that this magic class reloading has occurred.</p><p>The net result: super productivity — change your class, see the change instantly. This is designed to be a blend of the best of scripting environments (such as Python or Ruby) with all the speed and power of Java backing it up.</p><p>However, class reloading <em>only</em> applies to component classes (pages, components and mixins) and, starting in 5.2, Tapestry IOC-based service implementations (with some restrictions). Other classes, such as service interfaces, entity/model classes, and other data objects, are loaded by the normal class loader and not subject to live class reloading.</p><h2 id="ComponentClasses-InstanceVariables">Instance Variables</h2><p>Tapestry components may have instance variables (unlike Tapestry 4, where you had to use <em>abstract properties</em>).</p><p>Since release 5.3.2, instance variables may be protected, or package private (that is, no access modifier). Under specific circumstances they may even be public (public fields must either be final, or have the @<a c lass="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html">Retain</a> annotation).</p><p><span>Be aware that you will need to either provide getter and setter methods to access your classes' instance variables, or else annotate the fields with</span><span> @</span><a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Property.html">Property</a>.</p><h2 id="ComponentClasses-TransientInstanceVariables">Transient Instance Variables</h2><p>Unless an instance variable is decorated with an annotation, it will be a <em>transient</em> instance variable. This means that its value resets to its default value at the end of reach request (when the <a href="page-life-cycle.html">page is detached from the request</a></p><p>).</p><div class="confluence-information-macro confluence-information-macro-note"><p class="title">About initialization</p><span class="aui-icon aui-icon-sm all aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Never initialize an instance field to a <em>mutable</em> object at the point of declaration. If this is done, the instance created from that initializer becomes the default value for that field and is reused inside the component on every request. This could cause state to inadvertently be shared between different sessions in an application.</p></div></div> +<div class="aui-message aui-message-warning macro-deprecated"><b class="param-deprecated">Deprecated since 5.2</b> + + + <div class="param-body">For Tapestry 5.1 and earlier, in the rare event that you have a variable that can keep its value between requests and you would like to defeat that reset logic, then you can add a @<a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html">Retain</a> annotation to the field. You should take care that no client-specific data is stored into such a field, since on a later request the same page <em>instance</em> may be used for a different user. Likewise, on a later request for the <em>same</em> client, a <em>different</em> page instance may be used.</div> -<div class="aui-message aui-message-warning"> -Deprecated since 5.2 | -For Tapestry 5.1 and earlier, in the rare event that you have a variable that can keep its value between requests and you would like to defeat that reset logic, then you can add a @<a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html">Retain</a> annotation to the field. You should take care that no client-specific data is stored into such a field, since on a later request the same page <em>instance</em> may be used for a different user. Likewise, on a later request for the <em>same</em> client, a <em>different</em> page instance may be used. </div><p>Use <a href="persistent-page-data.html">persistent fields</a> to hold client-specific information from one request to the next.</p><p>Further, final fields are (in fact) final, and will not be reset between requests.</p><h2 id="ComponentClasses-Constructors">Constructors</h2><p>Tapestry will instantiate your class using the default, no arguments constructor. Other constructors will be ignored.</p><h2 id="ComponentClasses-Injection">Injection</h2><p>Main Article: <a href="injection.html">Injection</a></p><p>Injection of dependencies occurs at the field level, via additional annotations. At runtime, fields that contain injections become read-only.</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;">@Inject // inject a resource private ComponentResources componentResources; 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 Feb 25 21:24:42 2018 @@ -66,6 +66,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Component Events FAQ</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -78,26 +93,26 @@ <div id="content"> <div id="ConfluenceContent"><h1 id="ComponentEventsFAQ-ComponentEvents">Component Events</h1><p>Main Article: <a href="component-events.html">Component Events</a></p><h2 id="ComponentEventsFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1519068039274 {padding: 0px;} -div.rbtoc1519068039274 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1519068039274 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1519593714228 {padding: 0px;} +div.rbtoc1519593714228 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1519593714228 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1519068039274"> +/*]]>*/</style></p><div class="toc-macro rbtoc1519593714228"> <ul class="toc-indentation"><li><a href="#ComponentEventsFAQ-WhydoesTapestrysendaredirectafteraformissubmitted?">Why does Tapestry send a redirect after a form is submitted?</a></li><li><a href="#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)?</a></li></ul> </div><h2 id="ComponentEventsFAQ-WhydoesTapestrysendaredirectafteraformissubmitted?">Why does Tapestry send a redirect after a form is submitted?</h2><p>This is an extension of the <a class="external-link" href="http://en.wikipedia.org/wiki/Post/Redirect/Get" rel="nofollow">Post/Redirect/Get</a> approach. It ensures that after an operation that updates server-side state, such as a form submission, if the user resubmits the resulting page, the operation is <strong>not</strong> performed a second time; instead just the results of the operation, reflecting the changed server-side state, is re-rendered.</p><p>This has the unwanted requirement that any data needed to render the response must persist between the event request (the form submission) and the render request; this often means that fields must be annotated with @<a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Persist.html">Persist</a>. +</p><div class="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.2</b> -</p><div class="aui-message aui-message-info"> -Added in 5.2 - If you want to short-circuit this behavior and render a response directly, your component event handle method may return an instance of [StreamPageContent|http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/StreamPageContent.html]. Tapestry will render the page as part of the event request and stream its content back to the client web browser, rather than sending the normal redirect. + <div class="param-body">If you want to short-circuit this behavior and render a response directly, your component event handle method may return an instance of [StreamPageContent|http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/StreamPageContent.html]. Tapestry will render the page as part of the event request and stream its content back to the client web browser, rather than sending the normal redirect.</div> + </div> +<div class="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.4</b> + + <div class="param-body">Starting in release 5.4, Forms (by default) will NOT redirect after post if there are validation errors. This makes it possible to re-render the page, with error decorations, without requiring that the validation errors be stored in the session between requests ... and that means that the application can remain stateless much longer.</div> -<div class="aui-message aui-message-info"> -Added in 5.4 - Starting in release 5.4, Forms (by default) will NOT redirect after post if there are validation errors. This makes it possible to re-render the page, with error decorations, without requiring that the validation errors be stored in the session between requests ... and that means that the application can remain stateless much longer. </div><h2 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)?</h2><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> Modified: websites/production/tapestry/content/component-events.html ============================================================================== --- websites/production/tapestry/content/component-events.html (original) +++ websites/production/tapestry/content/component-events.html Sun Feb 25 21:24:42 2018 @@ -66,6 +66,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Component Events</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -164,11 +179,11 @@ void editDocument(int docId) </pre> </div></div><p>Tapestry does two things here:</p><ul><li>Because of the annotation, it identifies method editDocument() as the method to invoke whenever the component whose ID is "edit" triggers an event.</li><li>Because there is a method parameter, when the link is clicked the context value of the request is converted from a string to an integer and passed in as the method's value parameter.<br clear="none"><br clear="none"></li></ul> +<div class="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.3</b> + + <div class="param-body">Starting in release 5.3, Tapestry will throw an exception if the component identified for the event handler method doesn't exist in the containing component's template. This helps prevent typos.</div> -<div class="aui-message aui-message-info"> -Added in 5.3 - Starting in release 5.3, Tapestry will throw an exception if the component identified for the event handler method doesn't exist in the containing component's template. This helps prevent typos. </div><p>In the above example, the editDocument() method will be invoked when any event occurs in in the "edit" component (and has at least one context value).</p><p>For some components, more than one type of event can occur, in which case you will want to be more specific:</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;">@OnEvent(value="action", component="edit") void editDocument(int docId) Modified: websites/production/tapestry/content/component-libraries.html ============================================================================== --- websites/production/tapestry/content/component-libraries.html (original) +++ websites/production/tapestry/content/component-libraries.html Sun Feb 25 21:24:42 2018 @@ -65,6 +65,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Component Libraries</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -253,11 +268,11 @@ public class HappyModule </pre> </div></div><p>With this in place, and the library and applications rebuilt and redeployed, the URL for happy.jpg becomes /happyapp/assets/happylib/1.0/components/happy.jpg. This is shorter, but also incorporates a version number ("1.0") that can be changed in a later release.</p> +<div class="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.2</b> -<div class="aui-message aui-message-info"> -Added in 5.2 - In version 5.2 and later, Tapestry automatically creates a mapping for assets inside your JAR. In the above example, the icon image will be exposed as {{/assets/}}{_}application version{_}{{/happy/components/happy.jpg}} (the application version number is incorporated into the URL). The "happy" portion is a virtual folder that maps to the library's root package (as folder {{org/example/happylib}} on the Java classpath). The application version is a configurable value. + <div class="param-body">In version 5.2 and later, Tapestry automatically creates a mapping for assets inside your JAR. In the above example, the icon image will be exposed as {{/assets/}}{_}application version{_}{{/happy/components/happy.jpg}} (the application version number is incorporated into the URL). The "happy" portion is a virtual folder that maps to the library's root package (as folder {{org/example/happylib}} on the Java classpath). The application version is a configurable value. +</div> </div><h2 id="ComponentLibraries-Conclusion">Conclusion</h2><p>That's it! Autoloading plus the virtual folders for components and for assets takes care of all the issues related to components. Just build your JARs, setup the JAR Manifest, and drop them into your applications.</p></div> </div> Modified: websites/production/tapestry/content/component-mixins.html ============================================================================== --- websites/production/tapestry/content/component-mixins.html (original) +++ websites/production/tapestry/content/component-mixins.html Sun Feb 25 21:24:42 2018 @@ -65,6 +65,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Component Mixins</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> Modified: websites/production/tapestry/content/component-parameters.html ============================================================================== --- websites/production/tapestry/content/component-parameters.html (original) +++ websites/production/tapestry/content/component-parameters.html Sun Feb 25 21:24:42 2018 @@ -66,6 +66,21 @@ <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Component Parameters</h1></div> </div> + <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis & blogs:</span> +<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html"> + <input type="text" name="q"> + <input type="submit" value="Search"> +</form> + +</div> + + +<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div> + + +<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div> + +</div> <div class="clearer"></div> </div> @@ -180,11 +195,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 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:right; backgr ound: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.rbtoc1518870055354 {padding: 0px;} -div.rbtoc1518870055354 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1518870055354 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1519593737226 {padding: 0px;} +div.rbtoc1519593737226 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1519593737226 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style><div class="toc-macro rbtoc1518870055354"> +/*]]>*/</style><div class="toc-macro rbtoc1519593737226"> <ul class="toc-indentation"><li><a href="#ComponentParameters-ParameterBindings">Parameter Bindings</a></li><li><a href="#ComponentParameters-BindingExpressions">Binding Expressions</a></li><li><a href="#ComponentParameters-@Parameterannotation">@Parameter annotation</a></li><li><a href="#ComponentParameters-Don'tusethe${...}syntax!">Don't use the ${...} syntax!</a></li><li><a href="#ComponentParameters-InformalParameters">Informal Parameters</a></li><li><a href="#ComponentParameters-ParametersAreBi-Directional">Parameters Are Bi-Directional</a></li><li><a href="#ComponentParameters-InheritedParameterBindings">Inherited Parameter Bindings</a></li><li><a href="#ComponentParameters-ComputedParameterBindingDefaults">Computed Parameter Binding Defaults</a></li><li><a href="#ComponentParameters-UnboundParameters">Unbound Parameters</a></li><li><a href="#ComponentParameters-ParameterTypeCoercion">Parameter Type Coercion</a></li><li><a href="#ComponentParameters-ParameterNames"> Parameter Names</a></li><li><a href="#ComponentParameters-DeterminingifBound">Determining if Bound</a></li><li><a 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">
