| At line 1 added 71 lines |
| !!! Pure XHTML templating |
|
| [RSF] provides pure XHTML templating to the developer and the designer. This is achieved using the [IKAT] renderer which can operate standalone or as an integral part of the RSF framework. |
|
| !! Major Benefits |
| * Truly pure XHTML - No custom tags or tag libraries to maintain or teach to your designers |
| * Easy layout changes - Modifications to the page layout do not have to affect the Java source code! |
| * Division of labor - User experience and web designers can create XHTML mockups which become the application |
| * Designer focus - CSS and [AJAX] work seamlessly in the templates and can both be handled by the designer |
| * Valid HTML - Pages are as accessible and well formatted as your templates |
| * Reloadable templates - Templates can be changed and will reload automatically without webapp redeployment or server restarts |
|
| !! Sample RSF-ized XHTML template |
|
| {{{ |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns:rsf="http://ponder.org.uk/rsf" xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <title>RSF sample</title> |
| </head> |
| <body> |
| <h1 rsf:id="user-name">Hello UserName</h1> |
| <span rsf:id="current-date">Today is 1/1/2006</span><br/> |
| <table> |
| <tr rsf:id="item-row:"> |
| <td rsf:id="item-value">item value here</td> |
| </tr> |
| </table> |
| </body> |
| </html> |
| }}} |
|
| * No custom tags, only 1 custom attribute, the __rsf:id__ |
| * Uses convention over configuration for rsf:ids |
| ** string indicates a standard rsf:id which causes dynamic information to be placed in a view (e.g. user-name) |
| ** string with ":" indicates a loop structure (i.e. branch container) (e.g. item-row:) |
| ** string preceded with "scr=" indicates a custom RSF processing action (e.g. scr=portal-matter) |
|
| !! Benefits in depth |
|
| ! Truly pure XHTML |
| * No custom tags or tag libraries to maintain or teach to your designers |
| * Only 1 custom attribute, the __rsf:id__, which can be placed on any HTML tag |
| ** __NOTE:___ rsf:ids will NOT appear in the the HTML sent to the user, only in your functional templates |
| * Custom DTD {{{ xmlns:rsf="http://ponder.org.uk/rsf" }}} you can optionally use if you do not want to be warned about the rsf:id attributes by a validator |
|
| ! Easy layout changes |
| * Modifications to the page layout do not have to affect the Java source code! |
| * Designers can adjust the UI without developers having to get involved |
| ** As long as the data on the page remains consistent your designers can continue to do layout tweaks |
|
| ! Division of labor |
| * User experience and web designers can create XHTML mockups which become the application |
| * Developers take the mockups and turn them in a functional app by creating RSF producers to handle rendering logic and standard Java beans to handle processing |
| * Designers can then update templates (possibly even while developers are working on the Java code) |
| * The rsf:ids become a "common laguage" which the designers and developers use to refer to dynamic content |
|
| ! Designer focus |
| * CSS and [AJAX] work seamlessly in the templates and can both be handled by the designer |
| * Easy to modify template using Dreamweaver or your favorite HTML editor |
| ** No custom editing environments to learn or install |
|
| ! Valid HTML |
| * RSF enforces properly formatted XML in templates and provides detailed messages which indicate where improperly formatted lines occur |
| * Pages are as accessible and well formatted as your templates |
|
| ! Reloadable templates |
| * Templates can be changed and will reload automatically without webapp redeployment or server restarts |
| * Minor corrections to errors on pages can be made quickly and easily |
| * Designers can adjust working apps in real time in response to user needs |