I have to chime in a little (also noting that we have drifted a bit
off the original topic...)
While working for a large company as the Chief Architect for the web
group I was faced with the same need to investigate template options
- within the discussion of Build or Buy. And yes, JSP (and ATG
Dynamo) were on the list of potential buy options.
I took a novel approach: Since I am an engineer, and can only really
think like one, I _asked_ the web designers, and the web technicians,
and the programming and management staff what their needs were. I'll
summarize as briefly as I can below:
o The designers do not like any template structure that uses the
angle bracket notation <foo>. It makes some wysiwyg editors unhappy
to see foreign tags, and in the current race to HTML4.0 strict, new
tags make the validation tools (which have to be applied
pre-template-parsing, of course) unhappy.
o There are actually 3 groups involved, and separation of function
as much as possible allows the three groups to work independently on
a project without requiring concurrent editing of the same file.
- HTML coders
- Behavior (the perl or java code)
- Resources (pulling in images or other referenced objects)
With the templating options discussed so far, you tie the HTML
coders and the perl/java coders to editing the same file. Separation
of these two is really key, according to those I asked. The Project
Managers like the separation too.
o Don't forget localization. None of the existing products that we were
able to look at handled localization of templates. Localization must
be handled by HTTP accept headers and/or manual overriding.
o Virtual hosts are real, and template reuse, especially across VHs,
while allowing for VH specific customization (driven by the perl/java
or configuration) is a nicety.
We ended up developing our own solution, using mod_perl. By the way,
performance tested against ATG's Dynamo, it performed 500 - 700%
faster.
FWIW.