BACKGROUND:

About a year ago, I developed a custom tag library that implements JSP
Templates. Templates let you to build JSP pages from pluggable
components by encapsulating RequestDispatcher includes in custom tags. I
wrote an article about that tag library for JavaWorld, which you can
read at:
http://www.javaworld.com/javaworld/jw-09-2000/jw-0915-jspweb_p.html

I contributed the templates tag library to the Apache Struts JSP
framework. Subsequently, I received a great deal of feedback from
JavaWorld readers and Struts users concerning that library, and I
incorporated that feedback into a second-generation template tag library
that I rewrote from scratch.

The second-generation tag library implements the Composite and Strategy
design patterns, which results in some features that were not present in
the original library, such as creating new templates that "inherit" from
an existing template. You can read about that tag library at:
http://www.phptr.com/advjsp/pdf/ch4_mod.pdf.

PROPOSAL:

I would like to contribute the 2nd generation templates tag libary to
Jakarta Taglibs. I doubt that I can update the Struts tag library,
because the syntax of the tags in the 2nd generation library is
different than the original, which would break many existing struts
applications. Therefore, I would like to contribute the library to
Jakarta Taglibs. (Note: the 2nd generation taglib can coexist peacefully
with the original library in Struts, so Struts users could choose
between the two).

BENEFITS:

As you can see from http://www.phptr.com/advjsp/pdf/ch4_mod.pdf, there
are many benefits to the templates tag library. With the templates tag
library, you can create modular JSP pages from pluggable components, in
much the same way that you can build GUI applications with the AWT and
Swing.

Templates can have optional and role-based content, and you can nest
templates within other templates anyway you see fit. Templates can be
defined somewhere other than where they are used, which allows template
definitions to be grouped in a single file, simplifying their
maintenance. Templates can "inherit" their definitions from existing
templates, which makes them easier to create and understand.

This 2nd generation template library is a solid implementation that has
been subjected to public scrutiny, and has been refactored a number of
times to eliminate bugs and add features. I think it would make a great
addition to Jakarta Taglibs.


david geary

Reply via email to