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 |