HTMLSSM (SSM for short) is a template
engine created primarily for web development. Unlike
many template engines, the API has been
kept simple. Although it has been tempting to add
many "bells and whistles", we have decided
just to release the source a let each developer
customize SSM as needed. And just so you
know, HTMLSSM stands for "html server side manipulator".
Silly name, but we like it.
There are currently four versions of
HTMLSSM: Java, Perl, ASP 3.0,
COM. The API for all there are
virtually identical with only a few minor
differences (e.g. in Java and Perl the
constructor is usefully overloaded).
SSM was written with two purposes in mind.
The first is making web
development a faster process by cutting down on the amount
of redundant code one needs to write in
order to perform some action and output html as a result.
Ex: The amount of code necessary to
take some data from a database and turn that into a select box
isn't enormous, but it's definitely
annoying to rewrite code to do that a million times for a billion
different projects etc.
The second is to separate
html from programing logic. Just so you know, you should NEVER
EVER mix code with html ;) It's just a bad
idea... and if I find any of you writing
variable] %>", I will be forced to hunt you down
and take your keyboard away.
Why should you use ssm? What magic does it
do that is so worth making this fuss over? Step closer
and I'll tell you. There are two BIG
reasons that ssm is cool...
The first, is a single method
setField. setField takes two arguments,
name and value, and alters form elements
to reflect the value passed no matter what
form element name
references. It makes the semantics of
Name,Value work for EVERY TYPE of
HTML field. This concept may be hard to understand
with just the one statement, so I suggest
you read through the tutorial
for further explanation. Needless to say
however, that's one powerful method ;)
The second major benefit of
htmlssm is the subtemplate
concept. With subtemplates you can very easily build tables, forms,
or entire pages with very few lines of code.