TldLocationsCache (Apache Tomcat 7.0.104 API Documentation)

org.apache.jasper.compiler

## Class TldLocationsCache

- java.lang.Object
- - org.apache.jasper.compiler.TldLocationsCache

-     public class TldLocationsCache
      extends Object

  A container for all tag libraries that are defined "globally" for the web application. Tag Libraries can be defined globally in one of two ways: 1. Via <taglib> elements in web.xml: the uri and location of the tag-library are specified in the <taglib> element. 2. Via packaged jar files that contain .tld files within the META-INF directory, or some subdirectory of it. The taglib is 'global' if it has the <uri> element defined. A mapping between the taglib URI and its associated TaglibraryInfoImpl is maintained in this container. Actually, that's what we'd like to do. However, because of the way the classes TagLibraryInfo and TagInfo have been defined, it is not currently possible to share an instance of TagLibraryInfo across page invocations. A bug has been submitted to the spec lead. In the mean time, all we do is save the 'location' where the TLD associated with a taglib URI can be found. When a JSP page has a taglib directive, the mappings in this container are first searched (see method getLocation()). If a mapping is found, then the location of the TLD is returned. If no mapping is found, then the uri specified in the taglib directive is to be interpreted as the location for the TLD of this tag library.
  Author:
    Pierre Delisle, Jan Luehe

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ABS_URI` The types of URI one may specify for a tag library
    `static int` | `NOROOT_REL_URI`
    `static int` | `ROOT_REL_URI`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TldLocationsCache(ServletContext ctxt)` Constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static TldLocationsCache` | `getInstance(ServletContext ctxt)` Obtains the TLD location cache for the given `ServletContext` and creates one if one does not currently exist.
    `TldLocation` | `getLocation(String uri)` Gets the 'location' of the TLD associated with the given taglib 'uri'.
    `static void` | `setNoTldJars(String jarNames)` Sets the list of JARs that are known not to contain any TLDs.
    `static int` | `uriType(String uri)` Returns the type of a URI: ABS_URI ROOT_REL_URI NOROOT_REL_URI

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ABS_URI

          public static final int ABS_URI

      The types of URI one may specify for a tag library
      See Also:
        Constant Field Values

    - #### ROOT_REL_URI

          public static final int ROOT_REL_URI

      See Also:
        Constant Field Values

    - #### NOROOT_REL_URI

          public static final int NOROOT_REL_URI

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### TldLocationsCache

          public TldLocationsCache(ServletContext ctxt)

      Constructor.
      Parameters:
        `ctxt` - the servlet context of the web application in which Jasper is running

  - ### Method Detail

    - #### setNoTldJars

          public static void setNoTldJars(String jarNames)

      Sets the list of JARs that are known not to contain any TLDs.
      Parameters:
        `jarNames` - List of comma-separated names of JAR files that are known not to contain any TLDs

    - #### getInstance

          public static TldLocationsCache getInstance(ServletContext ctxt)

      Obtains the TLD location cache for the given `ServletContext` and creates one if one does not currently exist.
      Parameters:
        `ctxt` - The Servlet context for which the cache is required.
      Returns:
        The TLD location cache for the provided Servlet context

    - #### getLocation

          public TldLocation getLocation(String uri)
                                  throws JasperException

      Gets the 'location' of the TLD associated with the given taglib 'uri'. Returns null if the uri is not associated with any tag library 'exposed' in the web application. A tag library is 'exposed' either explicitly in web.xml or implicitly via the uri tag in the TLD of a taglib deployed in a jar file (WEB-INF/lib).
      Parameters:
        `uri` - The taglib uri
      Returns:
        An array of two Strings: The first element denotes the real path to the TLD. If the path to the TLD points to a jar file, then the second element denotes the name of the TLD entry in the jar file. Returns null if the uri is not associated with any tag library 'exposed' in the web application.
      Throws:
        `JasperException` - if initialisation of the cache fails

    - #### uriType

          public static int uriType(String uri)

      Returns the type of a URI: ABS_URI ROOT_REL_URI NOROOT_REL_URI
      Parameters:
        `uri` - The URI for which the type is required
      Returns:
        The type as an int constant

Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.