日期:2014-05-16  浏览次数:20430 次

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。

/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:wallimn 电邮:wallimn@sohu.com 时间:2009-12-12
博客:http://wallimn.iteye.com
网络硬盘:http://wallimn.ys168.com
/***********文章发表请与本人联系,作者保留所有权利*************/