svn commit: r869360 - in /websites/production/tapestry/content: cache/main.pageCache tapestry-for-jsf-users.html
Author: buildbot Date: Sat Jul 13 17:20:44 2013 New Revision: 869360 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 17:20:44 2013 @@ -34,9 +34,9 @@ /div div id=top -div id=smallbannerdiv class=searchbox style=float:right;margin: .3em 1em .1em 1em +div id=smallbannerdiv class=searchbox style=float:right;margin: .3em 1em .1em 1emp span style=color: #999; font-size: 90%Tapestry docs, issues, wikis amp; blogs:/span -form enctype=application/x-www-form-urlencoded method=get action=http://tapestry.apache.org/search.html; +/pform enctype=application/x-www-form-urlencoded method=get action=http://tapestry.apache.org/search.html; input type=text name=q input type=submit value=Search /form @@ -74,19 +74,19 @@ table.ScrollbarTable td.ScrollbarNextIco /td/trtrtd colspan=1 rowspan=1 span class=icon icon-page title=PagePage:/span - a shape=rect href=principles.htmlPrinciples/a + a shape=rect href=tapestry-tutorial.htmlTapestry Tutorial/a /td/trtrtd colspan=1 rowspan=1 span class=icon icon-page title=PagePage:/span - a shape=rect href=tapestry-tutorial.htmlTapestry Tutorial/a + a shape=rect href=getting-started.htmlGetting Started/a /td/trtrtd colspan=1 rowspan=1 span class=icon icon-page title=PagePage:/span - a shape=rect href=tapestry-for-jsf-users.htmlTapestry for JSF Users/a + a shape=rect href=principles.htmlPrinciples/a /td/trtrtd colspan=1 rowspan=1 span class=icon icon-page title=PagePage:/span - a shape=rect href=getting-started.htmlGetting Started/a + a shape=rect href=tapestry-for-jsf-users.htmlTapestry for JSF Users/a /td/tr/table /div @@ -95,10 +95,10 @@ table.ScrollbarTable td.ScrollbarNextIco pBecause 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 -pJSF 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 - pSince almost all modern JSF applications use Facelets as their view technology, we assume the use of Facelets here when discussing JSF features./p +pJSF 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 + h2a shape=rect name=TapestryforJSFUsers-SidebysideComparison/aSide-by-side Comparison/h2 pJSF and Tapestry have a lot of superficial similarities, so the first steps in that transition are all about relating similar concepts, terms and components in your mind:/p @@ -119,23 +119,23 @@ table.ScrollbarTable td.ScrollbarNextIco table class=sectionMacro border=0 cellpadding=5 cellspacing=0 width=100%tbodytrtd 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;bJSF template (helloworld.xhtml)/b/divdiv class=codeContent panelContent -pre class=code-xml -lt;html xmlns=span class=code-quotehttp://www.w3.org/1999/xhtml;/span -span class=code-keywordxmlns:h/span=span class=code-quotehttp://java.sun.com/jsf/html;/spangt; - span class=code-taglt;h:bodygt;/span -
[CONF] Apache Tapestry Tapestry for JSF Users
Tapestry for JSF Users Page edited by Bob Harner Comment: Minor tweak of _expression_ example and other tweaks Changes (4) ... | || JSF Syntax || Tapestry Syntax || | Property (calls getMyProperty() or setMyProperty()) | #\{employeeBean.employeeName\} | $\{employeeName\} | | Property (calls getEmployeeName() or setEmployeeName()) | #\{employeeBean.employeeName\} | $\{employeeName\} | | Boolean property (calls isHourly() or setHourly()) | #\{employeeBean.hourly\} | $\{hourly\} | | Property chain | #\{employeeBean.address.street\} | $\{address.street\} | ... h3. Event handling In JSF, you specify the event via the {{action}} parameter (for example, h:commandButton value=Submit action="" 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 t:actionlink component in Tapestry emits an action event when clicked, and you handle that event in your onAction() method. h2. Validation ... By contrast, Tapestry implements this Post-Redirect-Get pattern by default. The URL will always reflect the page youre seeing, not the page you just came from. 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 pages [Activation Context|Navigation#Page Activation] (which means the values will be appended to the URL) or [@Persist the properties|Persistent Page Data] the values in the session. h2. Custom and Composite Components ... Full Content Component Cheat SheetCheat Sheets Tapestry for JSF Users Related Articles Page: Introduction Page: Tapestry Tutorial Page: Getting Started Page: Principles Page: Tapestry for JSF Users This is a cheat sheet for learning Tapestry, designed for those who already know JavaServer Faces (JSF). 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. Since almost all modern JSF applications use Facelets as their view technology, we assume the use of Facelets here when discussing JSF features. 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. Side-by-side Comparison JSF and Tapestry have a lot of superficial similarities, so the first steps in that transition are all about relating similar concepts, terms and components in your mind: Concepts Terminology JSF Tapestry Java class associated with a page or component "Backing Bean" "Component Class" Component attributes/parameters "attributes" "parameters" Common Attributes/Parameters JSF Tapestry HTML Attribute used for invisible instrumentation jsfc="someComponentType" t:type="someComponentType" CSS "class" attribute name styleClass class Alternating "zebra" striped rows rowclasses="class1,class2" class="${cycle:class1,class2}" using cycle binding prefix, or with CSS: .rowClass:nth-child(even) {background-color: #e8e8e8;} Output and Messages JSF Tapestry Escaped HTML from property
svn commit: r869367 - in /websites/production/tapestry/content: cache/main.pageCache tapestry-for-jsf-users.html
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 { pJSF 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 ExpressionsProperty 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=confluenceTabletbodytrtd colspan=1 rowspan=1 class=confluenceTd#160;/tdth colspan=1 rowspan=1 class=confluenceTh JSF Syntax /thth colspan=1 rowspan=1 class=confluenceTh Tapestry Syntax /th/trtrtd colspan=1 rowspan=1 class=confluenceTd Property (calls getMyProperty() or setMyProperty()) /tdtd colspan=1 rowspan=1 class=confluenceTd #{employeeBean.employeeName} /tdtd colspan=1 rowspan=1 class=confluenceTd ${employeeName} /td/trtrtd colspan=1 rowspan=1 class=confluenceTd Boolean property (calls isHourly() or setHourly()) /tdtd colspan=1 rowspan=1 class=confluenceTd #{employeeBean.hourly} /tdtd colspan=1 rowspan=1 class=confluenceTd ${hourly} /td/trtrtd colspan=1 rowspan=1 class=confluenceTd Property chain /tdtd colspan=1 rowspan=1 class=confluenceTd #{employeeBean.address.street} /tdtd colspan=1 rowspan=1 class=confluenceTd ${address.stre et} /td/trtrtd colspan=1 rowspan=1 class=confluenceTd Null-safe property chain /tdtd colspan=1 rowspan=1 class=confluenceTd #{employeeBean.address.street} /tdtd colspan=1 rowspan=1 class=confluenceTd ${address?.street} /td/trtrtd colspan=1 rowspan=1 class=confluenceTd 5th element in a List /tdtd colspan=1 rowspan=1 class=confluenceTd #{employeeBean.employees[5].name} /tdtd colspan=1 rowspan=1 class=confluenceTd ${employees.get(5).name} /td/trtrtd colspan=1 rowspan=1 class=confluenceTd Negation /tdtd colspan=1 rowspan=1 class=confluenceTd #{! employeeBean.hourly} /tdtd colspan=1 rowspan=1 class=confluenceTd ${! hourly} /td/trtrtd colspan=1 rowspan=1 class=confluenceTd Arithmetic amp; relational operators /tdtd colspan=1 rowspan=1 class=confluenceTd +-*/% div mod /tdtd colspan=1 rowspan=1 class=confluenceTd emnot available/em /td/trtrtd co lspan=1 rowspan=1 class=confluenceTd Relational operators /tdtd colspan=1 rowspan=1 class=confluenceTd == != ne lt; lt gt; gt lt;= le gt;= ge /tdtd colspan=1 rowspan=1 class=confluenceTd emnot available/em /td/trtrtd colspan=1 rowspan=1 class=confluenceTd Ternary operator /tdtd colspan=1 rowspan=1 class=confluenceTd #{myBean.foo lt; 0 ? 'bar' : 'baz'} /tdtd colspan=1 rowspan=1 class=confluenceTd emnot available/em /td/trtrtd colspan=1 rowspan=1 class=confluenceTd Method calling /tdtd colspan=1 rowspan=1 class=confluenceTd #{myBean.employees.size()} /tdtd colspan=1 rowspan=1 class=confluenceTd ${employees.size()} /td/trtrtd colspan=1 rowspan=1 class=confluenceTd Iterated Range /tdtd colspan=1 rowspan=1 class=confluenceTd emnot avaialble/em /tdtd colspan=1 rowspan=1 class=confluenceTd ${1..10} /td/trtrtd colspan=1 rowspan=1 class= confluenceTd Iterated Range (calculated) /tdtd colspan=1 rowspan=1 class=confluenceTd emnot avaialble/em /tdtd colspan=1 rowspan=1 class=confluenceTd ${1..groupList.size()} /td/trtrtd colspan=1 rowspan=1 class=confluenceTd List /tdtd colspan=1 rowspan=1 class=confluenceTd emnot available/em /tdtd colspan=1 rowspan=1 class=confluenceTd ${ [ user.name, user.email, user.phone ] } /td/trtrtd colspan=1 rowspan=1 class=confluenceTd Map /tdtd colspan=1 rowspan=1 class=confluenceTd emnot available/em /tdtd colspan=1 rowspan=1 class=confluenceTd ${ { 'id':'4039','type':'hourly' } } /td/tr/tbody/table +table class=confluenceTabletbodytrtd colspan=1 rowspan=1 class=confluenceTd#160;/tdth colspan=1 rowspan=1 class=confluenceTh JSF Syntax /thth colspan=1 rowspan=1 class=confluenceTh Tapestry Syntax /th/trtrtd colspan=1 rowspan=1 class=confluenceTd Property (calls getEmployeeName() or setEmployeeName()) /tdtd colspan=1 rowspan=1 class=confluenceTd
[jira] [Created] (TAP5-2140) Choose Component
Barry Books created TAP5-2140: - Summary: Choose Component Key: TAP5-2140 URL: https://issues.apache.org/jira/browse/TAP5-2140 Project: Tapestry 5 Issue Type: New Feature Components: tapestry-core Affects Versions: 5.4 Reporter: Barry Books Priority: Minor Add support for Choose component that allows choose when test when test otherwise flow control -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (TAP5-2014) Zone highlight leaves behind an explicit background-color which overrides css background-color
[ https://issues.apache.org/jira/browse/TAP5-2014?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13707894#comment-13707894 ] Lenny Primak commented on TAP5-2014: The FlowLogix tapestry library will contain a fix for this bug in the next release. (1.2.3) which will go out sometime in the next week or so. Ref: FlowLogix Issue http://code.google.com/p/flowlogix/issues/detail?id=43 Zone highlight leaves behind an explicit background-color which overrides css background-color -- Key: TAP5-2014 URL: https://issues.apache.org/jira/browse/TAP5-2014 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.3.6 Reporter: Geoff Callender Zone highlighter (i.e. t:update=highlight) leaves behind an explicit background-color that overrides the background-color specified in css. Instead, I think it should finish by removing the style changes that it added. An example consequence: it kills off my hover effect. I have a table row with a hover effect, eg. tr { background-color: #fff; } tr:hover { background-color: #eee; } and the row is also a zone with a highlight effect tr t:type=Zone t:id=rowZone id=prop:currentRowZoneId t:update=highlight The hover effect works just fine until the zone updates, and then it no longer works. Here's the row before the zone updates: tr class=even t-zone tapestry-zone id=rowZone_5 Here's the row after the zone updates: tr class=even t-zone tapestry-zone id=rowZone_5 style=background-image: none; background-color: rgb(255, 255, 255); The problem would go away if the zone update finished by leaving the row the way that it found it: tr class=even t-zone tapestry-zone id=rowZone_5 You can see the problem if you turn on Highlight zone updates in this example: http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/eventlinksinaloop -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira