J4Fry Facelets Combo Tag

Characteristics

Attribute Value
Project name J4Fry Facelets Flow [Subproject of J4Fry JSFComponents]
Prerequisites JDK >= 1.4, JSF >= 1.1
Started with revision 1.2_02
CVS module JSFComponents
Responsible developer Ganesh Jung

Flow Tag aims

This is the second tag of the brand new (as of June 2008) declarative Facelets tag library, we introduced with the Combo tag. This tag is a compromise. It contradicts the J4Fry credo of not reinventing what others have done better before, because JSF flow engines are available like ?sand on the beach?. It was borne out of our urgent need for a tag that securely inhibits double submits in final pages of order flows. Double submits happen when users press their browsers back buttons after having successfully finished an process and when duplicate click on a button are not inhibited through javascript. Candidates for more comprehensive flow solutions would have been Seam or Spring web flow, but neither follows a standard because there is none yet so we decided to write a tag that suits this very special requirement.

The Facelets flow tag is placed on an arbitrary page and inhibits double submits by setting a currentTimeMillis into the session as well as into the page via a h:inputHidden that is checked against the session via a custom validator.

Usage

Refer to the general JSF Components installation for installation instructions.

Additionally this tag needs Facelets support. Please refer to the facelets documentation for help in installing facelets.

You must set an id attribute as well as an errorMessage attribute. The tag must be placed inside the form that must not be submitted twice. Place it at the beginning of the form to make the flow validator the first validator that is evaluated. If you use AJAX on your page either use partial submit to avoid submitting the flow tag or remember to rerender the flow tag. Here's an example:

<fry:flow id="flow" errorMessage="This page page can only be submitted once" />