欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用ant jar命令打包标签tld

程序员文章站 2022-04-30 15:51:23
...
项目自定义了一些JSP标签,想做成jar包引用就好,设计了tld标签的处理,想跟struts2一样,把标签放入jar包引用。
[quote]
一:如果web容器是J2EE1.3(servlet2.3)及以前的规范,由于不会自动加载struts的标签库,所以需要在web.xml文件中手动加载struts的标签库,文件名struts-tags.tld,一般放在WEB-INF下面,可以自己指定。

在web.xml中配置的加载标签定义文件如下:
<!-- 手动配置Struts 2的标签库 -->
<taglib>
<!-- 配置Struts 2标签库的URI jsp文件中应用的uri,类似于名字空间-->
<taglib-uri>/s</taglib-uri>
<!-- 指定Struts 2标签库定义文件的物理位置 -->
<taglib-location>/WEB-INF/struts-tags.tld</taglib-location>
</taglib>

二:jar包与tld文件分开,不利于程序的部署,jar包重用。
如果web容器是J2EE1.4(servlet2.4),那么web容器会自动加载标签库,Struts 2的标签库定义文件包含在struts2-core-2.0.6.jar文件里,在struts2-core-2.0.6.jar文件的META-INF路径下,包含了一个struts-tag.tld文件, 这个文件就是Struts 2的标签库定义文件,Servlet 2.4规范会自动加载该标签库文件。
打包时,把tld文件放到META-INF目录中,就可以了。

[/quote]

ant 语法

<target name="package-jar" depends="clean,prepare,compile" description="Package JAR">
<jar destfile="${dist}/${fkframe.jar}.jar">
<manifest>
<attribute name="Class-Path" value="${fkframe.jar}.jar" />
<attribute name="Implementation-Title" value="fkframe"/>
<attribute name="Implementation-Version" value="1.0"/>
</manifest>
<fileset dir="${build.classes}" />
<metainf dir="${web}/WEB-INF/tlds">
<include name="sigma.tld"/>
<include name="right.tld"/>
</metainf>
</jar>
</target>


最后页面引用

<%@ taglib prefix="fktag" uri="/fk-tags" %>
<%@ taglib prefix="sg" uri="/sigmaGrid-tags" %>