Professional Java Server Programming J2EE Edition
Chapter 12
We could actually have omitted the doStartTag() method. I include it for completeness, but in fact it does
exactly what its superclass TagSupport's doStartTag() method does: instruct the JSP engine to evaluate
the tag's content and any subtags.
Tag Library Descriptors
Tag Library Descriptors or TLDs are XML documents with a .tld extension that describe one or more tag
extensions. TLDs must conform to the Document Type Definition (DTD) included in the JSP 1.1
specification. Many of the elements are intended to provide support for JSP authoring tools, although such
tools are yet to be widely available in the market.
The root element is <taglib>. It's defined in the DTD by:
-
<!ELEMENT taglib
(tlibversion, jspversion?,
shortname, uri?, info?,
tag+) >
- tlibversion is the version of the tag library implementation. This is defined by the author
of the tag library.
-
jspversion is the version of JSP specification the tag library depends on. At the time of
writing the value you should use is 1.1 (the default). The element is optional.
-
shortname is a simple default name that could be used by a JSP authoring tool; the best
value to use is the preferred prefix value: that is, a suggestion as to a prefix to use when
importing the tag library. Although there is no way of enforcing this, hopefully developers
using the library will follow this suggestion, and consistency will be achieved between all users
of the tag library. The shortname should not contain whitespace, and should not start with a
digit or underscore.
-
uri is an optional URI uniquely identifying this tag library. If it is used, the value will
normally be the URL of the definitive version of the tag library descriptor.
-
info is an arbitrary text string describing the tag library. Think of it as the equivalent of a
Javadoc comment relating to an entire class or package; the authoring tool may display it
when the tag library is imported.
The <tag> element is the most important. It's defined in the DTD as:
-
<!ELEMENT tag
(name, tagclass, teiclass?,
bodycontent?, info?, attribute*) >
-
name is the name that will identify this tag (after the tag library prefix).
-
tagclass is the fully qualified name of the tag handler class that implements this tag. This
class must implement the javax.servlet.jsp.tagext.Tag interface.
-
teiclass stands for TagExtraInfo class, and defines the subclass of
javax.servlet.jsp.tagext.TagExtraInfo that will provide extra information about
this tag at runtime to the JSP. Not all tags require a TagExtraInfo class.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.