Author: buildbot
Date: Sat Jul 13 18:20:44 2013
New Revision: 869367

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/tapestry-for-jsf-users.html

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

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 Sat Jul 13 
18:20:44 2013
@@ -169,7 +169,7 @@ public class HelloWorld {
 <p>JSF uses the Unified Expression Language with the #{...} or ${...} syntax 
for accessing Backing Bean properties. For its part, Tapestry uses the ${...} 
syntax with a similar but more limited expression language called <a 
shape="rect" href="property-expressions.html" title="Property 
Expressions">Property Expressions</a>. Both allow easy access to properties via 
the usual JavaBean conventions, but with Tapestry you don't have to specify 
which class the expression starts at (because it always starts at the component 
class corresponding to the template). Some comparisons:</p>
 
 <div class="table-wrap">
-<table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><th colspan="1" rowspan="1" 
class="confluenceTh"> JSF Syntax </th><th colspan="1" rowspan="1" 
class="confluenceTh"> Tapestry Syntax </th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"> Property (calls getMyProperty() or setMyProperty()) 
</td><td colspan="1" rowspan="1" class="confluenceTd"> 
#{employeeBean.employeeName} </td><td colspan="1" rowspan="1" 
class="confluenceTd"> ${employeeName} </td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"> Boolean property (calls isHourly() or setHourly()) 
</td><td colspan="1" rowspan="1" class="confluenceTd"> #{employeeBean.hourly} 
</td><td colspan="1" rowspan="1" class="confluenceTd"> ${hourly} 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Property chain 
</td><td colspan="1" rowspan="1" class="confluenceTd"> 
#{employeeBean.address.street} </td><td colspan="1" rowspan="1" 
class="confluenceTd"> ${address.stre
 et} </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Null-safe 
property chain </td><td colspan="1" rowspan="1" class="confluenceTd"> 
#{employeeBean.address.street} </td><td colspan="1" rowspan="1" 
class="confluenceTd"> ${address?.street} </td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"> 5th element in a List </td><td colspan="1" 
rowspan="1" class="confluenceTd"> #{employeeBean.employees[5].name} </td><td 
colspan="1" rowspan="1" class="confluenceTd"> ${employees.get(5).name} 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Negation 
</td><td colspan="1" rowspan="1" class="confluenceTd"> #{! employeeBean.hourly} 
</td><td colspan="1" rowspan="1" class="confluenceTd"> ${! hourly} 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Arithmetic 
&amp; relational operators </td><td colspan="1" rowspan="1" 
class="confluenceTd"> +-*/% div mod </td><td colspan="1" rowspan="1" 
class="confluenceTd"> <em>not available</em> </td></tr><tr><td co
 lspan="1" rowspan="1" class="confluenceTd"> Relational operators </td><td 
colspan="1" rowspan="1" class="confluenceTd"> == != ne &lt; lt &gt; gt &lt;= le 
&gt;= ge </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>not 
available</em> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> 
Ternary operator </td><td colspan="1" rowspan="1" class="confluenceTd"> 
#{myBean.foo &lt; 0 ? 'bar' : 'baz'} </td><td colspan="1" rowspan="1" 
class="confluenceTd"> <em>not available</em> </td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"> Method calling </td><td colspan="1" 
rowspan="1" class="confluenceTd"> #{myBean.employees.size()} </td><td 
colspan="1" rowspan="1" class="confluenceTd"> ${employees.size()} 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Iterated Range 
</td><td colspan="1" rowspan="1" class="confluenceTd"> <em>not avaialble</em> 
</td><td colspan="1" rowspan="1" class="confluenceTd"> ${1..10} 
</td></tr><tr><td colspan="1" rowspan="1" class=
 "confluenceTd"> Iterated Range (calculated) </td><td colspan="1" rowspan="1" 
class="confluenceTd"> <em>not avaialble</em> </td><td colspan="1" rowspan="1" 
class="confluenceTd"> ${1..groupList.size()} </td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"> List </td><td colspan="1" rowspan="1" 
class="confluenceTd"> <em>not available</em> </td><td colspan="1" rowspan="1" 
class="confluenceTd"> ${ [ user.name, user.email, user.phone ] } 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Map </td><td 
colspan="1" rowspan="1" class="confluenceTd"> <em>not available</em> </td><td 
colspan="1" rowspan="1" class="confluenceTd"> ${ { 'id':'4039','type':'hourly' 
} } </td></tr></tbody></table>
+<table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><th colspan="1" rowspan="1" 
class="confluenceTh"> JSF Syntax </th><th colspan="1" rowspan="1" 
class="confluenceTh"> Tapestry Syntax </th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"> Property (calls getEmployeeName() or setEmployeeName()) 
</td><td colspan="1" rowspan="1" class="confluenceTd"> 
#{employeeBean.employeeName} </td><td colspan="1" rowspan="1" 
class="confluenceTd"> ${employeeName} </td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"> Boolean property (calls isHourly() or setHourly()) 
</td><td colspan="1" rowspan="1" class="confluenceTd"> #{employeeBean.hourly} 
</td><td colspan="1" rowspan="1" class="confluenceTd"> ${hourly} 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Property chain 
</td><td colspan="1" rowspan="1" class="confluenceTd"> 
#{employeeBean.address.street} </td><td colspan="1" rowspan="1" 
class="confluenceTd"> ${address.
 street} </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> 
Null-safe property chain </td><td colspan="1" rowspan="1" class="confluenceTd"> 
#{employeeBean.address.street} </td><td colspan="1" rowspan="1" 
class="confluenceTd"> ${address?.street} </td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"> 5th element in a List </td><td colspan="1" 
rowspan="1" class="confluenceTd"> #{employeeBean.employees[5].name} </td><td 
colspan="1" rowspan="1" class="confluenceTd"> ${employees.get(5).name} 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Negation 
</td><td colspan="1" rowspan="1" class="confluenceTd"> #{! employeeBean.hourly} 
</td><td colspan="1" rowspan="1" class="confluenceTd"> ${! hourly} 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Arithmetic 
&amp; relational operators </td><td colspan="1" rowspan="1" 
class="confluenceTd"> +-*/% div mod </td><td colspan="1" rowspan="1" 
class="confluenceTd"> <em>not available</em> </td></tr><tr><t
 d colspan="1" rowspan="1" class="confluenceTd"> Relational operators </td><td 
colspan="1" rowspan="1" class="confluenceTd"> == != ne &lt; lt &gt; gt &lt;= le 
&gt;= ge </td><td colspan="1" rowspan="1" class="confluenceTd"> <em>not 
available</em> </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> 
Ternary operator </td><td colspan="1" rowspan="1" class="confluenceTd"> 
#{myBean.foo &lt; 0 ? 'bar' : 'baz'} </td><td colspan="1" rowspan="1" 
class="confluenceTd"> <em>not available</em> </td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"> Method calling </td><td colspan="1" 
rowspan="1" class="confluenceTd"> #{myBean.employees.size()} </td><td 
colspan="1" rowspan="1" class="confluenceTd"> ${employees.size()} 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Iterated Range 
</td><td colspan="1" rowspan="1" class="confluenceTd"> <em>not avaialble</em> 
</td><td colspan="1" rowspan="1" class="confluenceTd"> ${1..10} 
</td></tr><tr><td colspan="1" rowspan="1" cl
 ass="confluenceTd"> Iterated Range (calculated) </td><td colspan="1" 
rowspan="1" class="confluenceTd"> <em>not avaialble</em> </td><td colspan="1" 
rowspan="1" class="confluenceTd"> ${1..groupList.size()} </td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"> List </td><td colspan="1" 
rowspan="1" class="confluenceTd"> <em>not available</em> </td><td colspan="1" 
rowspan="1" class="confluenceTd"> ${ [ user.name, user.email, user.phone ] } 
</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> Map </td><td 
colspan="1" rowspan="1" class="confluenceTd"> <em>not available</em> </td><td 
colspan="1" rowspan="1" class="confluenceTd"> ${ { 'id':'4039','type':'hourly' 
} } </td></tr></tbody></table>
 </div>
 
 
@@ -179,7 +179,7 @@ public class HelloWorld {
 
 <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 (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>
+<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;t: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>
 
@@ -200,7 +200,7 @@ public class Employee {
 
 <p>By contrast, Tapestry implements this Post-Redirect-Get pattern by default. 
The URL will always reflect the page you're seeing, not the page you just came 
from.</p>
 
-<p>Note that by default Tapestry does not save property values across the 
Post-Redirect-Get cycle. This means that you have to consider how (and whether) 
to persist property values from one page to the next.  The usual solution is to 
either make the values part of the page's <a shape="rect" 
href="navigation.html#Navigation-PageActivation">Activation Context</a> or <a 
shape="rect" href="persistent-page-data.html" title="Persistent Page 
Data">@Persist the properties</a> in the session.</p>
+<p>Note that by default Tapestry does not save property values across the 
Post-Redirect-Get cycle. This means that you have to consider how (and whether) 
to persist property values from one page to the next.  The usual solution is to 
either make the values part of the page's <a shape="rect" 
href="navigation.html#Navigation-PageActivation">Activation Context</a> (which 
means the values will be appended to the URL) or <a shape="rect" 
href="persistent-page-data.html" title="Persistent Page Data">@Persist the 
properties</a> the values in the session.</p>
 
 <h2><a shape="rect" 
name="TapestryforJSFUsers-CustomandCompositeComponents"></a>Custom and 
Composite Components</h2>
 


Reply via email to