I had talked last week about building a tag library, composed of tags derived
from the Struts tags, but which use the JSTL expression evaluation engine for
attribute values, instead of using JSP rtexprvalues.

I thought I would give you a little status on how I'm doing with this.

I've finished the "bean" and "logic" libraries, and am now working on the
"html" library.

It's occurred to me that if I'm building a tag library that would be used
alongside the JSTL, there's not much point in porting Struts tags that
duplicate JSTL tag functionality.  Therefore, most of the tags in the "logic"
library aren't in my derived library.  Part of the library documentation will
cover this issue, and will detail exactly which Struts tags were not ported,
and which JSTL tags cover their functionality.

While building this, I decided to look at building unit tests for these tags.
I thought this would be easy, as I could mutate the unit tests inside the
Struts distribution.  I was a little surprised to discover that there are
actually very few unit tests for the Struts tags, just for "logic:equal",
"logic:notequal", "logic:present", and "logic:notpresent".

So, as another minor subproject to this, I'm experimenting with what I can do
to build more complete unit tests for the Struts-EL tags.  Almost all of what
I'm doing here could be ported back eventually to the Struts unit tests.  In
particular, for the tags which generate HTML, I'm writing tests (and reusable
support code) which verifies the generated output, including checking the
attributes and their values which are present or not present in the output.
This code uses JUnit, Cactus, and HTTPUnit, along with requiring JTidy,
AspectJ, and Xalan.  Except for Xalan, these all normally go along with
HTTPUnit.

I'm also going to look at slightly extending the XML files which describe the
tag libraries, to include an element which indicates whether an attribute uses
the EL engine for evaluation.  This won't be used for generating the tag
libraries, only for documentation generation.

I'll provide more information as I get closer to completion (or what looks like
completion to me).

Any comments or questions?

-- 
===================================================================
David M. Karr          ; Java/J2EE/XML/Unix/C++
[EMAIL PROTECTED]


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

Reply via email to