我應該共享一個包裝標籤文件的幾個項目(請參見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。