You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by bu...@apache.org on 2013/02/17 21:20:53 UTC

svn commit: r850871 - in /websites/production/tapestry/content: application-module-class-cheat-sheet.html cache/main.pageCache component-cheat-sheet.html tapestry-for-jsf-users.html

Author: buildbot
Date: Sun Feb 17 20:20:53 2013
New Revision: 850871

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/application-module-class-cheat-sheet.html
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/component-cheat-sheet.html
    websites/production/tapestry/content/tapestry-for-jsf-users.html

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 17 20:20:53 2013
@@ -51,12 +51,22 @@
 <div class="clearer"></div>
 
   <div id="breadcrumbs">
-        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="application-module-class-cheat-sheet.html">Application Module Class Cheat Sheet</a>
+        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="cheat-sheets.html">Cheat Sheets</a>&nbsp;&gt;&nbsp;<a href="application-module-class-cheat-sheet.html">Application Module Class Cheat Sheet</a>
     <a class="edit" title="Edit this page (requires approval -- just ask on the mailing list)" href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=24184701">edit</a>
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><div>
+<div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
+table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
+table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
+table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
+table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
+table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
+table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
+
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%">&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="cheat-sheets.html"><img align="middle" border="0" src="/images/confluence/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="cheat-sheets.html">Cheat Sheets</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="component-cheat-sheet.html"><img align="middle" border="0" src="/images/confluence/forwd_16.gif" width="16" height="16"></a></td></tr></table></div>
+
+<div>
 <ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Namingconventions">Naming conventions</a></li><ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Thebindmethod">The bind method</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Servicebuildermethods">Service builder methods</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Contributemethods">Contribute methods</a></li><ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Unordered">Unordered</a></li></ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Decoratemethods">Decorate methods</a></li></ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Annotations">Annotations</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Parametertypes"> Parameter types</a></li><ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Configurationparametertypes">Configuration parameter types</a></li><li><a shape="rect" href=
 "#ApplicationModuleClassCheatSheet-Linktoservices">Link to services</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Symbols">Symbols</a></li></ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Loadservicesonregistrystartup">Load services on registry startup</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Defineservicescope">Define service scope</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Disambiguateservices">Disambiguate services</a></li><ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-WithserviceId">With service Id</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-WithMarkers">With Markers</a></li></ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Overrideexistingservices">Override existing services</a></li></ul></div>
 
 <div class="navmenu" style="float:right; background:#eee; margin:3px; padding:3px"><table class="tableview" width="100%"><tr><th colspan="1" rowspan="1" style="padding: 3px 3px 3px 0px">Related Articles</th></tr><tr><td colspan="1" rowspan="1">
@@ -77,11 +87,11 @@
         
                                             </td></tr><tr><td colspan="1" rowspan="1">
                                  <span class="icon icon-page" title="Page">Page:</span>
-                         <a shape="rect" href="application-module-class-cheat-sheet.html">Application Module Class Cheat Sheet</a>
+                         <a shape="rect" href="configuration.html">Configuration</a>
         
                                             </td></tr><tr><td colspan="1" rowspan="1">
                                  <span class="icon icon-page" title="Page">Page:</span>
-                         <a shape="rect" href="configuration.html">Configuration</a>
+                         <a shape="rect" href="application-module-class-cheat-sheet.html">Application Module Class Cheat Sheet</a>
         
                                             </td></tr></table>
 </div>
@@ -260,7 +270,17 @@
 
 <h2><a shape="rect" name="ApplicationModuleClassCheatSheet-Overrideexistingservices"></a>Override existing services</h2>
 
-<p><em>content under development</em></p></div>
+<p><em>content under development</em></p>
+
+<style type="text/css">/*<![CDATA[*/
+table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
+table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
+table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
+table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
+table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
+table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
+
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%">&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="cheat-sheets.html"><img align="middle" border="0" src="/images/confluence/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="cheat-sheets.html">Cheat Sheets</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="component-cheat-sheet.html"><img align="middle" border="0" src="/images/confluence/forwd_16.gif" width="16" height="16"></a></td></tr></table></div></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/tapestry/content/component-cheat-sheet.html
==============================================================================
--- websites/production/tapestry/content/component-cheat-sheet.html (original)
+++ websites/production/tapestry/content/component-cheat-sheet.html Sun Feb 17 20:20:53 2013
@@ -51,12 +51,22 @@
 <div class="clearer"></div>
 
   <div id="breadcrumbs">
-        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="component-cheat-sheet.html">Component Cheat Sheet</a>
+        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="cheat-sheets.html">Cheat Sheets</a>&nbsp;&gt;&nbsp;<a href="component-cheat-sheet.html">Component Cheat Sheet</a>
     <a class="edit" title="Edit this page (requires approval -- just ask on the mailing list)" href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=24184518">edit</a>
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><div class="navmenu" style="float:right; background:#eee; margin:3px; padding:3px"><table class="tableview" width="100%"><tr><th colspan="1" rowspan="1" style="padding: 3px 3px 3px 0px">Related Articles</th></tr><tr><td colspan="1" rowspan="1">
+<div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
+table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
+table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
+table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
+table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
+table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
+table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
+
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="application-module-class-cheat-sheet.html"><img align="middle" border="0" src="/images/confluence/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="application-module-class-cheat-sheet.html">Application Module Class Cheat Sheet</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="cheat-sheets.html"><img align="middle" border="0" src="/images/confluence/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="cheat-sheets.html">Cheat Sheets</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="tapestry-for-jsf-users.html">Tapestry for JSF Users</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="tapestry-for-jsf-
 users.html"><img align="middle" border="0" src="/images/confluence/forwd_16.gif" width="16" height="16"></a></td></tr></table></div>
+
+<div class="navmenu" style="float:right; background:#eee; margin:3px; padding:3px"><table class="tableview" width="100%"><tr><th colspan="1" rowspan="1" style="padding: 3px 3px 3px 0px">Related Articles</th></tr><tr><td colspan="1" rowspan="1">
                                  <span class="icon icon-page" title="Page">Page:</span>
                          <a shape="rect" href="component-parameters.html">Component Parameters</a>
         
@@ -74,19 +84,19 @@
         
                                             </td></tr><tr><td colspan="1" rowspan="1">
                                  <span class="icon icon-page" title="Page">Page:</span>
-                         <a shape="rect" href="component-classes.html">Component Classes</a>
+                         <a shape="rect" href="component-templates.html">Component Templates</a>
         
                                             </td></tr><tr><td colspan="1" rowspan="1">
                                  <span class="icon icon-page" title="Page">Page:</span>
-                         <a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a>
+                         <a shape="rect" href="component-libraries.html">Component Libraries</a>
         
                                             </td></tr><tr><td colspan="1" rowspan="1">
                                  <span class="icon icon-page" title="Page">Page:</span>
-                         <a shape="rect" href="component-templates.html">Component Templates</a>
+                         <a shape="rect" href="component-classes.html">Component Classes</a>
         
                                             </td></tr><tr><td colspan="1" rowspan="1">
                                  <span class="icon icon-page" title="Page">Page:</span>
-                         <a shape="rect" href="component-libraries.html">Component Libraries</a>
+                         <a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a>
         
                                             </td></tr></table>
 </div>
@@ -295,7 +305,17 @@ for the activate and passivate events di
   configuration.add(SymbolConstants.PRODUCTION_MODE, <span class="code-quote">"<span class="code-keyword">false</span>"</span>);
 }</pre>
 </div></div></li></ul>
-</div>
+
+
+<style type="text/css">/*<![CDATA[*/
+table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
+table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
+table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
+table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
+table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
+table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
+
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="application-module-class-cheat-sheet.html"><img align="middle" border="0" src="/images/confluence/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="application-module-class-cheat-sheet.html">Application Module Class Cheat Sheet</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="cheat-sheets.html"><img align="middle" border="0" src="/images/confluence/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="cheat-sheets.html">Cheat Sheets</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="tapestry-for-jsf-users.html">Tapestry for JSF Users</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="tapestry-for-jsf-
 users.html"><img align="middle" border="0" src="/images/confluence/forwd_16.gif" width="16" height="16"></a></td></tr></table></div></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/tapestry-for-jsf-users.html
==============================================================================
--- websites/production/tapestry/content/tapestry-for-jsf-users.html (original)
+++ websites/production/tapestry/content/tapestry-for-jsf-users.html Sun Feb 17 20:20:53 2013
@@ -64,22 +64,24 @@ table.ScrollbarTable td.ScrollbarParent 
 table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
 table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
 
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%">&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="cheat-sheets.html"><img align="middle" border="0" src="/images/confluence/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="cheat-sheets.html">Cheat Sheets</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;</td></tr></table></div>
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="component-cheat-sheet.html"><img align="middle" border="0" src="/images/confluence/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="cheat-sheets.html"><img align="middle" border="0" src="/images/confluence/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="cheat-sheets.html">Cheat Sheets</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;</td></tr></table></div>
 
 <h1><a shape="rect" name="TapestryforJSFUsers-TapestryforJSFUsers"></a>Tapestry for JSF Users</h1>
 
-<p>This is a cheat sheet for learning Tapestry for those who already know JavaServer Faces (JSF).</p>
+<p>This is a cheat sheet for learning Tapestry, designed for those who already know JavaServer Faces (JSF).</p>
+
+<p>Because both JSF and Tapestry are component oriented frameworks designed to serve mostly the same kinds of problems in similar ways, developers who already know JSF will find it very easy to learn Tapestry. In fact, Facelets, the default view technology in JSF 2.0, was created specifically to give JSF a Tapestry-like templating capability, so Facelets users should feel right at home.</p>
 
 <p>JSF is a rich, mature web framework specification, and there are lots of smart people who use it productively. This guide isn't intended as a pro-versus-con comparison or as advocacy of any kind. Instead, it just attempts to make transitions between the two frameworks easier, regardless of the reason for doing so.</p>
 
-<p>Almost all modern JSF applications use Facelets as their view technology, so we assume the use of Facelets here for the JSF side.</p>
+<p>Since almost all modern JSF applications use Facelets as their view technology, we assume the use of Facelets here when discussing JSF features.</p>
 
 <h2><a shape="rect" name="TapestryforJSFUsers-SidebysideComparison"></a>Side-by-side Comparison</h2>
 
 <p>JSF and Tapestry have a lot of superficial similarities, so the first steps in that transition are all about relating similar concepts, terms and component names in your mind:</p>
 
 <div class="table-wrap">
-<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Concepts &amp; Terminology </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Java class associated with a page or component </td><td colspan="1" rowspan="1" class="confluenceTd"> "Backing Bean" </td><td colspan="1" rowspan="1" class="confluenceTd"> "Component Class" </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Component attributes/parameters </td><td colspan="1" rowspan="1" class="confluenceTd"> "attributes" </td><td colspan="1" rowspan="1" class="confluenceTd"> "parameters" </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> HTML Attribute used for invisible instrumentation </td><td colspan="1" rowspan="1" class="confluenceTd"> jswc="someComponentType" </td><td colspan="1" rowspan="1" class="confluenceTd"> t:type="some
 ComponentType" </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> CSS "class" attribute name </td><td colspan="1" rowspan="1" class="confluenceTd"> styleClass </td><td colspan="1" rowspan="1" class="confluenceTd"> class </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Output and Messages </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Escaped HTML from property </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:outputText value="myBean.myValue"/&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> ${myValue} </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Raw HTML from property </td><td colspan="1" rowspan="1" class="confluenceTd"> #{myBean.myValue} </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:outputRaw value="myValue"/&gt;</td></tr><tr><td colspan="1" rowspan="1"
  class="confluenceTd"> Error messages </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:message&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:errors&gt; (for forms) or &lt;t:alerts&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Image display </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:graphicImage&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>use standard &lt;img&gt; tag</em> </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Conditionals and Looping </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Server-side comment </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;ui:remove&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:remove&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Render-time loop </t
 d><td colspan="1" rowspan="1" class="confluenceTd"> &lt;ui:repeat&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:loop&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Compile-time loop </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;c:forEach&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:loop&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Conditional </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;c:if test="#{myBean.myValue}"&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:if test="myValue"&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Conditional </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;ui:fragment rendered="#{myBean.someCondition}"/&gt;...&lt;/ui:fragment&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:if test="someCondition"&gt;...&lt;/t:if&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluen
 ceTd"> Switch </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;c:choose&gt;&lt;c:when ... &gt;&lt;/c:choose&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> See <a shape="rect" href="switching-cases.html" title="Switching Cases">Switching Cases</a> </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Links and Buttons </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Navigational link </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:link outcome="nextpage.xhtml"/&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/PageLink.html">&lt;t:pagelink page="nextpage"/&gt;</a></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Event-triggering link, without form s
 ubmission </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>not available</em> </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:actionLink&gt; or &lt;t:eventLink&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Form submission link </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:commandLink&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:linkSubmit&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Form submission button </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:commandButton&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:submit&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Link to Javascript file </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:outputScript&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>&lt;script&gt; or use @Import in component class</em> </td></tr><tr><td colspan="1" rowspan="1" class
 ="confluenceTd"> Link to CSS file </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:outputStylesheet&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>&lt;style&gt; or use @Import in component class</em> </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Grids, Tables and Trees </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Tabular data in &lt;table&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:datatable&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> Grid </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Table used for layout </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:panelGrid&gt; with &lt;h:panelGroup&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>use standard &lt;table&gt; tag</em> </td></tr><tr><td colspan="1" rowspan="
 1" class="confluenceTd"> Hierarchical tree </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>depends on component library</em> </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:tree&gt; </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Form Tags/Components </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Form </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:form&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:form&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Single-line text input field </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:inputText&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/TextField.html">
 &lt;t:textField&gt;</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Password field </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:inputSecret&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:password&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Select menu </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectOneMenu&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:select&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Checkbox </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectBooleanCheckbox&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:checkbox&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Checkbox list </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectManyCheckbox&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:checklist&gt; </td></tr><tr><td colspan="1" rowspan
 ="1" class="confluenceTd"> Radio button list </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectOneRadio&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:radioGroup&gt; with &lt;t:radio&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Multiple select menu </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectManyListbox&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>not available</em> (but see Palette and Checklist) </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Hidden field </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:inputHidden&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:hidden&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> textarea tag </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:inputTextarea&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:textArea&gt; </td></tr><tr><td colspan="1" row
 span="1" class="confluenceTd"> Label tag </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:outputLabel for="..."&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:label for="..."&gt; </td></tr></tbody></table>
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Concepts &amp; Terminology </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Java class associated with a page or component </td><td colspan="1" rowspan="1" class="confluenceTd"> "Backing Bean" </td><td colspan="1" rowspan="1" class="confluenceTd"> "Component Class" </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Component attributes/parameters </td><td colspan="1" rowspan="1" class="confluenceTd"> "attributes" </td><td colspan="1" rowspan="1" class="confluenceTd"> "parameters" </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> HTML Attribute used for invisible instrumentation </td><td colspan="1" rowspan="1" class="confluenceTd"> jswc="someComponentType" </td><td colspan="1" rowspan="1" class="confluenceTd"> t:type="some
 ComponentType" </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> CSS "class" attribute name </td><td colspan="1" rowspan="1" class="confluenceTd"> styleClass </td><td colspan="1" rowspan="1" class="confluenceTd"> class </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Output and Messages </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Escaped HTML from property </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:outputText value="myBean.myValue"/&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> ${myValue} </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Raw HTML from property </td><td colspan="1" rowspan="1" class="confluenceTd"> #{myBean.myValue} </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:outputRaw value="myValue"/&gt;</td></tr><tr><td colspan="1" rowspan="1"
  class="confluenceTd"> Error messages </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:message&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:errors&gt; (for forms) or &lt;t:alerts&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Image display </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:graphicImage&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>use standard &lt;img&gt; tag</em> </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Conditionals and Looping </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Render-time loop </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;ui:repeat&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:loop&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Compile-time loop </td><t
 d colspan="1" rowspan="1" class="confluenceTd"> &lt;c:forEach&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:loop&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Conditional </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;c:if test="#{myBean.myValue}"&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:if test="myValue"&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Conditional </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;ui:fragment rendered="#{myBean.someCondition}"/&gt;...&lt;/ui:fragment&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:if test="someCondition"&gt;...&lt;/t:if&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Switch </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;c:choose&gt;&lt;c:when ... &gt;&lt;/c:choose&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> See <a shape="rect" href="switching-cases.html" titl
 e="Switching Cases">Switching Cases</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Server-side comment </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;ui:remove&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:remove&gt; </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Links and Buttons </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Navigational link </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:link outcome="nextpage.xhtml"/&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/PageLink.html">&lt;t:pagelink page="nextpage"/&gt;</a></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Event-triggering link, without form s
 ubmission </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>not available</em> </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:actionLink&gt; or &lt;t:eventLink&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Form submission link </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:commandLink&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:linkSubmit&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Form submission button </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:commandButton&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:submit&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Link to Javascript file </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:outputScript&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>&lt;script&gt; or use @Import in component class</em> </td></tr><tr><td colspan="1" rowspan="1" class
 ="confluenceTd"> Link to CSS file </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:outputStylesheet&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>&lt;style&gt; or use @Import in component class</em> </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Grids, Tables and Trees </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Tabular data in &lt;table&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:datatable&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> Grid </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Table used for layout </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:panelGrid&gt; with &lt;h:panelGroup&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>use standard &lt;table&gt; tag</em> </td></tr><tr><td colspan="1" rowspan="
 1" class="confluenceTd"> Hierarchical tree </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>depends on component library</em> </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:tree&gt; </td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"> Form Tags/Components </th><th colspan="1" rowspan="1" class="confluenceTh"> JSF </th><th colspan="1" rowspan="1" class="confluenceTh"> Tapestry </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Form </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:form&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:form&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Single-line text input field </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:inputText&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/TextField.html">
 &lt;t:textField&gt;</a> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Password field </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:inputSecret&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:password&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Select menu </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectOneMenu&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:select&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Checkbox </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectBooleanCheckbox&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:checkbox&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Checkbox list </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectManyCheckbox&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:checklist&gt; </td></tr><tr><td colspan="1" rowspan
 ="1" class="confluenceTd"> Radio button list </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectOneRadio&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:radioGroup&gt; with &lt;t:radio&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Multiple select menu </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:selectManyListbox&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>not available</em> (but see Palette and Checklist) </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Hidden field </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:inputHidden&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:hidden&gt; </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> textarea tag </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:inputTextarea&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:textArea&gt; </td></tr><tr><td colspan="1" row
 span="1" class="confluenceTd"> Label tag </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;h:outputLabel for="..."&gt; </td><td colspan="1" rowspan="1" class="confluenceTd"> &lt;t:label for="..."&gt; </td></tr></tbody></table>
 </div>
 
 
@@ -106,7 +108,7 @@ table.ScrollbarTable td.ScrollbarNextIco
 </div></div></td><td colspan="1" rowspan="1" valign="top" class="confluenceTd">
 <div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Tapestry template (HelloWorld.tml)</b></div><div class="codeContent panelContent">
 <pre class="code-xml">
-<span class="code-tag">&lt;html <span class="code-keyword">xmlns:t</span>=<span class="code-quote">"http://tapestry.apache.org/schema/tapestry_5_3.xsd"</span>&gt;</span>
+<span class="code-tag">&lt;html&gt;</span>
   <span class="code-tag">&lt;body&gt;</span>
     <span class="code-tag">&lt;p&gt;</span>${greeting}<span class="code-tag">&lt;/p&gt;</span>
   <span class="code-tag">&lt;/body&gt;</span>
@@ -155,7 +157,7 @@ table.ScrollbarTable td.ScrollbarNextIco
 
 <h3><a shape="rect" name="TapestryforJSFUsers-Eventhandling"></a>Event handling</h3>
 
-<p>In JSF, you specify the event via the <tt>action</tt> parameter (for example, &lt;h:commandButton value="Submit" action="employeeBean.saveChanges"&gt;). For Tapestry, event handler methods are found by method naming conventions (on_EventName_() or by method annotations (@Event), based on a combination of the "t:id" attribute and event name, and the action name used depends on the component. For example, the "&lt;actionlink&gt;" component in Tapestry emits an "action" event when clicked, and you handle that event in your "onAction()" method.</p>
+<p>In JSF, you specify the event via the <tt>action</tt> parameter (for example, &lt;h:commandButton value="Submit" action="employeeBean.saveChanges"&gt;). For Tapestry, event handler methods are found by method naming conventions (onSomeEvent() or by method annotations (@Event), based on a combination of the "t:id" attribute and event name, and the action name used depends on the component. For example, the "&lt;actionlink&gt;" component in Tapestry emits an "action" event when clicked, and you handle that event in your "onAction()" method.</p>
 
 <h2><a shape="rect" name="TapestryforJSFUsers-Validation"></a>Validation</h2>
 
@@ -191,7 +193,17 @@ table.ScrollbarTable td.ScrollbarNextIco
 <h2><a shape="rect" name="TapestryforJSFUsers-OtherReferences"></a>Other References</h2>
 
 <ul><li><a shape="rect" class="external-link" href="http://blog.tapestry5.de/wp-content/uploads/2010/06/JSF-2.0-vs-Tapestry-5.pdf" >JavaServer Faces 2.0 vs. Tapestry 5: A Head-to-Head Comparison</a> slides by Igor Drobiazko, June 2010.</li><li><a shape="rect" class="external-link" href="http://docs.oracle.com/javaee/6/tutorial/doc/gkhxa.html" >Composite Components: Advanced Topics and Example</a> part of <em>The Java EE 6 Tutorial</em> from Oracle</li></ul>
-</div>
+
+
+<style type="text/css">/*<![CDATA[*/
+table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
+table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
+table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
+table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
+table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
+table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
+
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="component-cheat-sheet.html"><img align="middle" border="0" src="/images/confluence/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="component-cheat-sheet.html">Component Cheat Sheet</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="cheat-sheets.html"><img align="middle" border="0" src="/images/confluence/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="cheat-sheets.html">Cheat Sheets</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;</td></tr></table></div></div>
 </div>
 
 <div class="clearer"></div>