J4Fry JSF Components

J4Fry JSF Components aims

We think JSF is a great framework for web development. So we are trying to add benefits to the development process where we think this is necessary. We have developed a stable, cross-browser capable, feature rich AJAX component, a set of conversion, validation and errorhandling components to help making JSF development even more easy and fun and some custom JSF tags (see features for details). Please see the articles in our documents section for details on J4Fry JSF components. Here's a list of all modules that are part of our jsf components:

J4Fry JSF Components installation

Drop these jars into your web application classpath to make J4Fry JSF Components available:

Refer to our JSF taglib with the URL:

<%@ taglib uri="http://j4fry.org/jsf" prefix="fry"%>

J4Fry JSF Components prerequisites

J4Fry JSF components work with:

  • JSF spec 1.1 or JSF 1.2 compatible JSF implementations (like MyFaces or SUNs RI)
  • Facelets (optional)
  • JSR168 Portlets (optional, not extensively tested, please report your experiences)
  • JDK >= 1.4

J4Fry JSF Components features

We provide a universal AJAX Tag, that can be nested inside any other JSF Tag to AJAX enable it, general usage JSF components for configurable conversion error messages and automatic exception message propagation in JSF Actions to the FacesContext, a JSF OnLoad Tag that introduced action exection during page load, a Collapsible Panel Component for improved page design, a Facelets Combo Tag and a Facelets Flow Tag that inhibits double submits.

Most components need resources to work with. For example the AJAX tag needs Javascripts and the Panel needs Javascripts and open/close images. The J4Fry JSF Components deliver these components from within the jar file on their classpath. A ResourcePhaseListener will recognize requests for these resources, retrieve them from the classpath and deliver them in the response. This technique does not work within portals. The portal will not let the resource requests get though to the listener because it will not recognize them. In this case you need to unpack the j4fry-components.jar, take the J4Fry resources from the org/j4fry/jsf/listener/resource folder and save them in a folder underneath the docRoot of your webserver. To make J4Fry know where the resources are accessible there is a context-param org.j4fry.RESOURCE_PATH that points to the resource folder. Add this param to your web.xml to retireve the resources from the designated path. Here's an example:
<context-param>
  <description>Path to J4Fry's resources</description>
  <param-name>org.j4fry.RESOURCE_PATH</param-name>
  <param-value>/J4Fry-portlet/J4Fry_resources/</param-value>
</context-param>