【问题标题】:jstl tag re-use in a jarjstl 标签在 jar 中重用
【发布时间】:2012-10-01 03:14:19
【问题描述】:

真的很简单,不是我以前做过的事情,但我一定错过了一些东西。

我有一个这样的工作 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中重写所有代码并完成,但是下次会发生什么,当它是更复杂的代码时。

【问题讨论】:

    标签: tags jstl code-reuse


    【解决方案1】:

    谷歌搜索“jar 中的标记文件”会导致这个Oracle documentation,它说:

    标签文件可以打包在 JAR 的 /META-INF/tags/ 目录下 安装在 Web 应用程序的 /WEB-INF/lib/ 目录中的文件。 放置在此处的标签通常是可重复使用的标签库的一部分, 可以在任何 Web 应用程序中轻松使用。

    捆绑在 JAR 中的标记文件需要标记库描述符。标记文件 出现在 JAR 中但未在 TLD 中定义的将被 网络容器。

    请注意,您的标记是自定义 JSP 标记,而不是 JSTL 标记。 JSTL 是 JSP 标准标签库,你的自定义标签不属于这个标准库。

    【讨论】:

      猜你喜欢
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 2012-11-30
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多