Having only worked with Struts for a couple of months, I'm beginning to
wonder about the costs and benefits of using Struts, or any other JSP tag
library, for that matter.

At one level, it adds a great deal of support for maintaining session state
and managing work flow in a web application.  I really like being able to
use a declarative approach to workflow; i.e. If this action is invoked, go
to A. If it succeeds, go to B.  If there's an error, go to C.  Trying to
manage all the possibilities in code is a real headache.  The Form support
is also quite useful, especially with its validation and error reporting
mechanism.

However, I'm not sure about the value of many of the tags.  The literature
talks about how custom tags allow web developers and Java developers to work
independently.  It is said that, using custom tags, we can keep Java code
out of web pages.  Thus, Java developers don't have to learn HTML to
generate it in their code and web developers don't have to learn Java to
understand all those JSP code snippets.

However, it's my observation that a custom tag library becomes almost a
third language that neither web developers nor Java developers understand.
So instead of forcing web developers to learn Java, or forcing Java
developers to learn HTML, custom tags force both groups of developers to
learn a unique semantics for a custom tag framework.

Now, if a Java developer does learn HTML, s/he's added a skill with wide
application.  If a web developer learns a bit of Java, s/he's added a skill
with wide application.  If both parties learn a custom tag API, they've
added a skill that's only useful with that particular custom tag API.  If
one goes to a different project using different custom tag libraries, one
has to start learning a new custom tag API all over again.

I'm not interested in starting some kind of religious war by this post.  I'm
just wondering how much the benefits outweigh the costs of using Struts on a
project.

Jack


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to