2012-10-10 43 views
3

非常簡單,不是我以前做過的事情,但我必須錯過一些東西。jstl標籤在罐子裏重新使用

我有一個這樣的工作JSTL標記 - 以下,簡稱:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%> 
<%@ attribute name="path" type="java.lang.Object" rtexprvalue="true" required="true"%> 
<%@ attribute name="l10nprefix" type="java.lang.String" required="false"%> 
<%@ attribute name="cssClass" type="java.lang.String" required="false"%> 
...a bunch of code... 
<form:select path="${path}" cssClass="${cssClass}"> 
...some more of code... 
</form:select> 

,現在我想放在一個共享位置(思罐),這樣我可以從不同的項目中引用它。所以我可以像其他taglib一樣引用它。

我可以看到你將如何做到這一點是你正在寫一個java類延伸 javax.servlet.jsp.tagext.SimpleTagSupport(我記得看到另一個類提到了一些地方)。簡單到足以在正確的位置創建一個.tld文件。

但我看不到標準的方式來重新使用jstl標籤代碼。有一個嗎?

我讀了關於tomcat編譯jstl標記代碼到類文件的地方。 大概我可以參考.tld文件生成的類。 但是在構建中發現並封裝它看起來有點笨重。 更好地重寫所有的代碼在Java中,並完成,但下一次,當它是更復雜的代碼。

回答

0

谷歌搜索「罐中標記文件」導致這個Oracle documentation,它說:

標記文件可以打包在/ META-INF /標籤/目錄下安裝在一個JAR 文件/ WEB應用程序的WEB-INF/lib /目錄。 這裏放置的標籤通常是可重複使用的標籤庫的一部分,它可以在任何Web應用程序中輕鬆使用。

捆綁在JAR中的標籤文件需要標籤庫描述符。出現在JAR中但未在TLD中定義的標記文件 將被 Web容器忽略。

請注意,您的標籤是定製JSP標記,而不是JSTL標籤。 JSTL是JSP標準標籤庫,您的自定義標籤不是此標準庫的一部分。