You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by Apache Wiki <wi...@apache.org> on 2005/06/05 00:19:34 UTC

[Jakarta-taglibs Wiki] Update of "ReusableDialogComponents/Tutorials/Composition" by RahulAkolkar

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jakarta-taglibs Wiki" for change notification.

The following page has been changed by RahulAkolkar:
http://wiki.apache.org/jakarta-taglibs/ReusableDialogComponents/Tutorials/Composition

New page:
''Where the whole is greater than the sum of its parts''

----

Since all components use JSP 2.0 tag files for their implementations, it is possible to easily create components which are composed of smaller ones. Thus, a composite can embed functionality already provided by (usually, more than one) other components, and add value by enabling reuse, since a composite now becomes a first-class component in its own right, defining the dialog management across its children, the public data model that gets returned etc.

 * Example:
{{{
<rdc:mortgage id="myMortgage" />
}}}

 * Where composition comes in
The guts of the mortgage composite contains this:
{{{
<rdc:group id="mortgageGroup" strategy="org.apache.taglibs.rdc.dm.SimpleDirectedDialog">
  <rdc:mortgageType id="myMortgageType" ... />
  <rdc:percent id="myPercentageDownpayment" ... />
</rdc:group>
}}}
where ... stands for other tag attributes not relevant to this discussion.

 * Interpretation
{{{
Collect mortgage information, which due to the composition, means, collect a mortgage type and a percentage down payment (with constraints as specified by tag attributes), in that order.
}}}

Composites can contain other composites, so it is possible to recursively encapsulate larger bits of interaction within a single composite. The design decision regarding the optimum size of a component depends on factors such as how composition affects configurability, how much reuse across JSPs / applications is expected if further composition is pursued etc.

---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-dev-help@jakarta.apache.org