Class TldScanner

java.lang.Object
org.apache.jasper.servlet.TldScanner
Direct Known Subclasses:
TldPreScanned

public class TldScanner extends Object
Scans for and loads Tag Library Descriptors contained in a web application.
  • Constructor Details

    • TldScanner

      public TldScanner(ServletContext context, boolean namespaceAware, boolean validation, boolean blockExternal)
      Initialise with the application's ServletContext.
      Parameters:
      context - the application's servletContext
      namespaceAware - should the XML parser used to parse TLD files be configured to be name space aware
      validation - should the XML parser used to parse TLD files be configured to use validation
      blockExternal - should the XML parser used to parse TLD files be configured to be block references to external entities
  • Method Details

    • scan

      public void scan() throws IOException, SAXException
      Scan for TLDs in all places defined by the specification:
      1. Tag libraries defined by the platform
      2. Entries from <jsp-config> in web.xml
      3. A resources under /WEB-INF
      4. In jar files from /WEB-INF/lib
      5. Additional entries from the container
      Throws:
      IOException - if there was a problem scanning for or loading a TLD
      SAXException - if there was a problem parsing a TLD
    • getUriTldResourcePathMap

      public Map<String,TldResourcePath> getUriTldResourcePathMap()
      Returns the map of URI to TldResourcePath built by this scanner.
      Returns:
      the map of URI to TldResourcePath
    • getTldResourcePathTaglibXmlMap

      public Map<TldResourcePath,TaglibXml> getTldResourcePathTaglibXmlMap()
      Returns the map of TldResourcePath to parsed XML files built by this scanner.
      Returns:
      the map of TldResourcePath to parsed XML files
    • getListeners

      public List<String> getListeners()
      Returns a list of all listeners declared by scanned TLDs.
      Returns:
      a list of listener class names
    • setClassLoader

      public void setClassLoader(ClassLoader classLoader)
      Set the class loader used by the digester to create objects as a result of this scan. Normally this only needs to be set when using JspC.
      Parameters:
      classLoader - Class loader to use when creating new objects while parsing TLDs
    • scanPlatform

      protected void scanPlatform()
      Scan for TLDs required by the platform specification.
    • scanJspConfig

      protected void scanJspConfig() throws IOException, SAXException
      Scan for TLDs defined in <jsp-config>.
      Throws:
      IOException - Error reading resources
      SAXException - XML parsing error
    • scanResourcePaths

      protected void scanResourcePaths(String startPath) throws IOException, SAXException
      Scan web application resources for TLDs, recursively.
      Parameters:
      startPath - the directory resource to scan
      Throws:
      IOException - if there was a problem scanning for or loading a TLD
      SAXException - if there was a problem parsing a TLD
    • scanJars

      public void scanJars()
      Scan for TLDs in JARs in /WEB-INF/lib.
    • parseTld

      protected void parseTld(String resourcePath) throws IOException, SAXException
      Throws:
      IOException
      SAXException
    • parseTld

      protected void parseTld(TldResourcePath path) throws IOException, SAXException
      Throws:
      IOException
      SAXException