throws JspParseException
{
if (log.isLoggable(Level.FINEST))
log.finest("taglib prefix=" + prefix + " uri:" + uri);
Taglib taglib;
try {
taglib = _tagManager.addTaglib(prefix, uri);
} catch (JspParseException e) {
if (isOptional) {
log.log(Level.FINE, e.toString(), e);
return null;
}
throw e;
}
if (taglib == null && isOptional &&
! uri.startsWith("urn:jsptld:") && ! uri.startsWith("urn:jsptagdir:"))
return null;
if (taglib == null) {
throw error(L.l("'{0}' has no matching taglib-uri. Taglibs specified with an absolute URI must either be:\n"
+ "1) specified in the web.xml\n"
+ "2) defined in a jar's .tld in META-INF\n"
+ "3) defined in a .tld in WEB-INF\n"
+ "4) predefined by Resin",
uri));
}
taglib = addLibrary(taglib);
ArrayList<TldFunction> functions = taglib.getFunctionList();
for (int i = 0; i < functions.size(); i++) {
TldFunction function = functions.get(i);
String name = taglib.getPrefixString() + ":" + function.getName();
_elFunctionMap.put(name, function.getMethod());
}
return taglib;