JSP页面中taglib的uri设置

今天遇到这样一个问题,使用JAVA做了个WEB应用,其中用到一个自定义标签。该标签的class文件与tld(tld文件中,uri定义为:http://wallimn.iteye.com/myfuncs)文件放在一起, 
  jsp页面中的引用方式为: 
  <%@ taglib prefix="wlm" uri="http://wallimn.iteye.com/myfuncs" %> 
  开始一直直接使用class文件,没有打jar包,运行的时候没有任何问题。 

  后来把应用部署到internet上,发现使用该标签的页面全部不能正常显示,我通过把两处的uri定义修改成非网址形式(wallimn:functions)把问题解决了,不过我没有搞清楚原因。希望读到此文的达人能指点一下。 

  再后来,我把所有的class文件,打成jar包,以jar的形式部署到WEB应用中,又出现了新的问题,原来能找到的tld文件找不到了。通过以绝对地址方式引用标签解决了这个问题。 
  即: 
  <%@ taglib prefix="wlm" uri="/WEB-INF/myfuncts.tld" %> 
  当然,要把myfuncts.tld放在对应的位置。 

  jar包与tld文件分开,不利于程序的部署、jar包重用。如何能把tld文件与class文件一起打到jar包中、且能正常运行呢? 

  分析了一下displaytag-1.2.jar的文件结构,发现它的tld文件是放在jar包中的META-INF目录中的。我打包时,也把tld文件放到META-INF目录中,测试运行,OK。 

http://wallimn.iteye.com/blog/546860

原文地址:https://www.cnblogs.com/softidea/p/6083161.html