This page discusses the relationship of RSF to other techologies, broadly categorised into technologies with which RSF can integrate and techologies which are similar. This page will consist, like the Concepts page, of short summaries with links to a more extended discussion.
Spring Web Flow#
As of 0.7.2, Spring Web Flow is a first-class integration environment for RSF. Spring Web Flow applications may be transparently hosted within the context of an RSF application, with seamless integration of templates, EL targets and the request cycle. This integration is discussed on its own page at RSF-SpringWebFlow. Since the early version of 0.5, RSF also featured a lightweight "clone" of SWF as an option for operating its own flow scope. This and RSF's flow subsystem in general are entirely independent of Spring Web Flow integration proper.
As of 0.6, Hibernate enjoys first-class support in RSF, providing an ORM layer. Take a look at the Hibernate Cookbook for how to get started.
integration is achieved through the Sakai integration library SakaiRSF
. The two major RSF samples, NumberGuessing and the Hibernate Cookbook, have been ported over to Sakai, requiring no code changes, and adapted to Sakai UI guidelines using simple HTML reskinning.
Sun's specification JSR-168
is an API specification to be followed by Porlets, which are, loosely, "components" of a composite web application, each responsible for painting its own rectangle of the browser window. As of release 0.6.2 RSF features RSFPortlet
, producing a JAR enabling RSF applications to execute as portlets without code changes.
Spring Web MVC#
As of version 0.6.4, RSF features integration with Spring MVC in that the IKAT
renderer has been packaged as a Spring MVC view technology, to fit alongside the built-in renderers for JSPs, Velocity and FreeMarker templates. This now allows Spring MVC users to take advantage of pure HTML templating for the first time. Note that RSF as a whole replaces the functionality within Spring MVC, although it supports the low-level primitives on which it is based, such as Spring Validation and the Spring message resolving system. This integration is demonstrated in the Spring MVC Step-by-Step
, where a standard SpringMVC sample is first partially ported by having the JSP layer reimplemented in HTML using IKAT, and then rewritten completely in RSF.
In RSF 0.6.3, a pilot
integration of RSF's rendering technology IKAT
with Apache's Cocoon
was tried. This appeared as a Cocoon Serializer, the IKATSerializer
. This integrates part of the GET cycle. Integration of the rest of the GET cycle, and with the POST cycle, would be potential areas for future development. NOTE: This integration is not being maintained. See the CocoonRSFIntegration page for details.
is generally considered (by the RSF team) to be the best other HTML templating framework out there (just ahead of Tapestry). Wicket's HTML templating system is similar to that of RSF, although it is not quite as regular in that "components" are defined using a different (and non-HTML) syntax to pages. Wicket tends to use session-scope
and a heavy component architecture where RSF prefers request-scope and IOC
is rather mature and quite widely deployed. It's also not terribly bad in that it does feature a form (albeit a logic-coupled one) of HTML templating, and has been integrated with several other technologies. However, as well as the somewhat deficient templates, it has its own somewhat rigid ideas about application state, as well as being rather big
is pleasant in many ways, featuring a pure HTML templating language and a quite unique continuations
engine that will probably be integrated into RSF. However, the templating language is highly logic-bound and fairly intrusive, and RIFE has no bean line
. RIFE does define a sort of lightweight ORM solution that if it were unbundled like the continuations package, could be quite useful.
is a framework that is very similar to RIFE, in that it operates a pure HTML templating idiom, and is very strongly based around Continuations
, an interesting idea. The level of template abstraction is somewhat lower however, since page authors are manipulating representations of markup directly, even by reference to tags such as <div> and <tr>. In general Qwicap offers few architectural benefits other than its very lower barriers to entry.
(together with Spring) can be considered the "parent" of RSF, and so a number of the same concepts (EL, actions, some component names, and a navigation style) have resurfaced, although usually in a considerably more streamlined form. RSF is envisaged as a wholesale replacement for JSF, with considerably greater integration flexibility and configurability resulting from its architecture based on Spring
is a framework that delivers on more of JSF's promise to integrate GUI development and webapp design.