Keeping track of the tld files for a framework or API is an error-prone process, very much so when using a framework like Struts or JSTL that has multiple tag libraries .
A better solution is to package the TLD files along with the rest of the library’s classes and other resources. This is actually mandated by the JSP specification, but who reads specs anyway. IBM developerWorks has a great series on JSP best practices, or which one of the articles explains this technique:
http://www.ibm.com/developerworks/java/library/j-jsp09023/
The short explanation is to put the TLD files in the META-INF directory of the jar file and reference them in your deployement descriptor like so:
<taglib> <taglib-uri>http://www.newInstance.com/taglibs/site-utils</taglib-uri> <taglib-location>/WEB-INF/lib/newInstance-taglib_1-1.jar</taglib-location> </taglib>
Some of the other articles in the series are worthwhile as well.
In addition to this simple use of advanced jar packaging, there is a multitude of other abilities that are completely ignored, I will post some more on this subject this week.