1
假設我正在使用打包在JAR文件中的標記庫。鑑於我不想修改JAR文件,有沒有辦法改變或覆蓋標記庫的聲明URI,以防其URI與另一個標記庫衝突?有沒有辦法來覆蓋在標籤庫的TLD中聲明的URI?
假設我正在使用打包在JAR文件中的標記庫。鑑於我不想修改JAR文件,有沒有辦法改變或覆蓋標記庫的聲明URI,以防其URI與另一個標記庫衝突?有沒有辦法來覆蓋在標籤庫的TLD中聲明的URI?
如果你得到相互矛盾的URI不同的標籤庫,並且不希望改變JAR,您可以從中提取JAR的TLD並嘗試像這樣的東西覆蓋它在web.xml
:
<jsp-config>
<taglib>
<taglib-uri>http://foobar.org</taglib-uri>
<taglib-location>/WEB-INF/tlds/yourtaglib.tld</taglib-location>
</taglib>
</jsp-config>
這假設你放置提取的TLD文件中/WEB-INF/tlds/yourtaglib.tld
並且您將參考其與http://foobar.org
在JSP中:
<%@ taglib uri="http://foobar.org" prefix="p" %>
是這種行爲的標準或規格的任何地方規定?它可以在不同的Web服務器上工作嗎? – supertonsky
@supertonsky:我的理解是,在解析taglib映射時,您在web.xml中定義的內容優先。 參見例如[JSP 2.1規範](http://download.oracle.com/otndocs/jcp/jsp-2.1-fr-eval-spec-oth-JSpec/),章節JSP.7.3(特別是JSP.7.3 0.2)。但是我不知道不同的servlet容器如何對此做出反應,並且不知道跨實現的行爲是否會一致。 – Bogdan