class JspTldLocator {
    static final Logger log = LoggerFactory.getLogger(JspTldLocator.class);

    public static Map<String, TaglibDescriptor> createTldInfos(String... dltDirs) throws IOException {<FILL_FUNCTION_BODY>}
}

        HashMap<String, TaglibDescriptor> tagLibInfos = new HashMap<>();

        TldParser tldParser = new TldParser(true, true, true);

        for (String dltDir : dltDirs) {
            //加载模板目录下的 tdl
            Set<String> urls = ScanUtil.scan(AppClassLoader.global(), dltDir, n -> n.endsWith(".tld"));

            if (Utils.isNotEmpty(urls)) {
                for (String uri : urls) {
                    uri = "/" + uri;

                    URL resUri = ResourceUtil.getResource(uri);
                    TldResourcePath tldResourcePath = new TldResourcePath(resUri, uri);

                    try {
                        TaglibXml taglibXml = tldParser.parse(tldResourcePath);

                        ServletContextHandler.TagLib tagLib = new ServletContextHandler.TagLib();
                        tagLib.setTaglibURI(taglibXml.getUri());
                        tagLib.setTaglibLocation(uri);

                        tagLibInfos.put(taglibXml.getUri(), tagLib);
                    } catch (Exception e) {
                        log.warn("Tdl failed to load, uri={}", uri, e);
                    }
                }
            }
        }

        return tagLibInfos;
    
<no_super_class>