我应该共享一个包装标签文件的几个项目(请参见Packaged tag files)。在一个独立的项目中,我创建了这个打包的标记文件,它实际上只是一个JAR文件(参考下面的'JAR文件结构'一节),我可以重新分配给我的所有项目。我正在使用Eclipse IDE。
问题:
根据甲骨文的文档,我应该能够把我的.TLD成JAR文件的/ META-INF /目录。但是,如果.tld也在项目的/ WEB-INF /目录中,并且我使用<%@taglib prefix="t" uri="/WEB-INF/tagfiles.tld" %>
来引用它,那么Eclipse仅会成功验证我的代码。如何在不将.tld放入/ WEB-INF /目录的情况下在Eclipse中引用我的标记?这是Oracle文档,说明它可以在JAR的META-INF:
标签库描述符文件名必须有扩展名.TLD和 必须的了/ WEB-INF /目录或子目录打包WAR 文件或打包在JAR中的标记库 的/ META-INF /目录或子目录中。如果标签是作为标签文件实现的,并且打包在/ WEB-INF/tags /或子目录中,则由Web容器自动生成 ,但如果您希望 希望,则可以提供一个TLD。
我不希望将.tld放入WEB-INF的原因是,如果包含在JAR中,分发更容易。然后,我不必每次更改时都将其复制到所有依赖项目中。
我的JAR文件的结构:
我创建了一个名为wrapper.tag JSP标记文件。我创建了另一个名为tagfiles.tld的文件,其中tag-files
元素具有子元素<path>/META-INF/tags/wrapper.tag</path>
。我创建了一个可以JAR这些的ant任务。它使用以下内容创建JAR:META-INF,META-INF/tags,META-INF/tld,META-INF/MANIFEST.MF,tags/wrapper.tag和tld/tagfiles.tld。