Packaging and Installing a Tag Library

During development, you may want to let the tag library classes and the TLD file reside as-is in the filesystem, since it makes it easy to change the TLD and modify and recompile the classes. Just make sure the class files are stored in a directory that’s part of the classpath for the JSP container, such as the WEB-INF/classes directory for the web application. The TLD must also be in a directory where the JSP container can find it. The recommended location is the WEB-INF/tlds directory. To identify the library with the TLD stored in this location, use a taglib directive in the JSP pages like this:

<%@ taglib uri="/WEB-INF/tlds/orataglib_1_0.tld" prefix="ora" %>

Here the uri attribute refers directly to the TLD file’s location.

When you’re done with the development, you may want to package all tag handler classes, TagExtraInfo classes, beans used by the tag handler classes, and the TLD in a JAR file. This makes it easier to install the library in an application. The TLD must be saved as /META-INF/taglib.tld within the JAR file.

To create the JAR file, first arrange the files in a directory with a structure like this:

META-INF/
  taglib.tld
com/
  ora/
    jsp/
      tags/
        generic/
          EncodeHTMLTag.class
          ...
      util/
        StringFormat.class
        ...

The structure for the class files must match the package names for your classes. Here a few of the classes in the tag library for this book are shown as an example.

With the file structure in place, use the jar command to create the ...

Get Java Server Pages now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.