Identifying a Custom Tag Library in a JSP 1.1 Container

Prior to JSP 1.2, the container didn’t locate custom tag libraries automatically. If you’re stuck with a container that doesn’t yet support JSP 1.2, you must tell it exactly where to find the TLD.

The first approach you can use is to specify a symbolic name as the uri attribute value, just as in JSP 1.2. But in addition, you must define the mapping from the symbolic name to the location of the library in the deployment descriptor for the application (WEB-INF/web.xml):

<web-app>
  ...
  <taglib>
    <taglib-uri>
      orataglib
    </taglib-uri>
    <taglib-location>
      /WEB-INF/lib/orataglib_3_0.jar
    </taglib-location>
  </taglib>
  ...
</web-app>

The <taglib-uri> element contains the symbolic name, and the <taglib-location> element contains the path to the tag library JAR file, or to the TLD file itself in case the library isn’t packaged in a JAR file.

If the uri attribute value doesn’t match a symbolic name defined in the web.xml file, the container assumes it is a file path:

<%@ taglib uri="/WEB-INF/lib/orataglib_3_0.jar" prefix="ora" %>

If the path starts with a slash, it’s interpreted as a context-relative path (the path to the file from the root of the application installation directory), otherwise as a path relative to the JSP page (known as a page-relative path ). The file can be either the TLD file itself or a JAR file that includes the TLD file as META-INF/taglib.tld.

These two approaches work in JSP 1.2 or 2.0 container as well, but there’s rarely ...

Get JavaServer Pages, 3rd Edition 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.