struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wes Wannemacher <>
Subject Re: Seeking reflections on our tag library (as a framework)
Date Tue, 11 Aug 2009 14:51:32 GMT

As you know, there are many aspects to the taglib that make it
interesting. One big thing that you mention is the use of the tobago
plugin to generate the TLDs and marking parameters as attributes with
an annotation. I'm guessing this was done at some point to make the
taglib more manageable, but I've used this facility to generate my own
tags for apps... It is a much friendlier setup than linking against
jsp-api directly and trying to build the tag from scratch.

Personally, I don't use Freemarker for Velocity, so the fact that it
works outside of JSP is nifty, but of no real use to me. Although, I
have used freemarker to generate email messages, I don't find myself
using any struts tags in there, I generally just populate the model
and render the template...

I will say that that the theming is what sells it for me. I like
breaking down the UI using the struts themes and sitemesh. My JSPs are
very slim, it's not uncommon to find pages that just look like this -

<div id="pageHeader">stuff</div>
<div id="pageForm">
// struts form tags

Part of the reason is that I am terrible at UI design. If left up to
me, sites that I work on would look like someone barfed up their
alphabet soup. It's just my nature, I was a terrible dresser until my
wife taught me the basics and I still struggle sometimes. The
templating allows me to apply a consistent look and Yes, I customize
it quite often. I'd imagine that there are other ways to get the same
result, but the s2 tags are a good fit. The elements being glued to
the server-side components (via OGNL, etc.) and worry very little
about anything other than the java end of things. Then, I can work
with people wise in the ways of art to make the sites/tools actually
be appealing to look at.

HTML is just too flexible and there are too many ways to get the same
output, so I generally look for consistency and manageability. Then, I
can just browse places like this - to
find a template that I like. It's usually trivial to convert one of
those into a sitemesh decorator. The templateability of the tags lets
me make the small changes I want to make things fit into the
site-template I choose.

Another thing that is useful is the overall design. The available tags
make sense for the way I work. I am not sure if it is because I've
trained my brain to approach problems a certain way after using
struts2 for so long, or if they are just that good. But, I use tags
like s:if / s:else and s:iterator quite a bit. I like exposing things
from the action and being able to get to them in a uniform manner in
the UI. I use the form tags quite a bit as well, but the whole package
just seems like it is exactly what I would want it to be. There are
some tags I stay away from though because I don't usually find any use
for them -  s:optiontransferselect and s:action... I can't say that
I've ever used them and I probably wouldn't. For the situations where
I have to manage a set of lists I would rather use AJAX than a really
complicated form tag.

On Tue, Aug 11, 2009 at 10:19 AM, Don Brown<> wrote:
> At Atlassian, every application seems to have picked a different web
> framework and template engine to use.  As we are finally starting to
> do some common UI work, I'm wondering if the Struts 2 tag library
> framework is worth basing our tag library on.  Assume it wouldn't be
> too hard to extract mostly as-is:
> * Is the design solid?
> * How limiting do you find it over native tags/macros in the
> respective template engines?
> * How useful is the theme system really? For example, properties that
> are only used by some themes are confusing and error-prone.
> * Any performance bottlenecks outside all the OGNL usage?
> * Would Struts be interested in the result?
> The benefits I see are:
> * Support for Velocity, Freemarker, and JSP
> * Overridable, customizable Themes
> * Ability to plug in a new template engine
> * Generated tld and docs
> While I've worked a bit on the tags from a struts dev pov, I've
> haven't used them much myself.  My gut feel is it would be worth it in
> the short and long term, however I remember some discussion about
> their design and value, so I'd like to revisit those concerns.
> BTW, was digging around in the javatemplate stuff...very impressive!
> It is cool to see simple prototype code turned into a full featured
> library.  Any thoughts on how that sax-like design worked out?  Should
> it have been a more DOM-like object model instead?
> Don
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

Wes Wannemacher

Head Engineer, WanTii, Inc.
Need Training? Struts, Spring, Maven, Tomcat...
Ask me for a quote!

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message