【问题标题】:Embedding Tag Files in a JAR在 JAR 中嵌入标签文件
【发布时间】:2012-03-23 07:37:48
【问题描述】:

可以这样做吗?我在这里尝试完成的是创建一个可扩展的 Struts 2 插件,该插件具有可定制的屏幕,以避免类似项目中的代码重复。

【问题讨论】:

    标签: jsp-tags tagfile


    【解决方案1】:

    引用this 来源的步骤(取自上一个答案)以防 URL 更改。 (我在互联网上找到的最简单的解决方案)

    当包装在 jar(Java 存档)中时,标记文件需要 tld

    menu.tld 放在META-INF 目录中。

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
                               "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib>
        <tlibversion>1.0</tlibversion>
        <jspversion>1.1</jspversion>
        <shortname>menutagfile</shortname>
    
        <uri>www.examulator.com/menutagfile</uri>
        <tag-file>
            <name>menu</name>
            <path>/META-INF/tags/menu.tag</path>
        </tag-file>
    </taglib>
    

    menu.tag 放置在META-INF\tags 目录中。

    <%@ tag body-content="tagdependent" %>
    <%@ attribute name="menutext" rtexprvalue="true"%>
    
    <h1>This is my tag file</h1>
    <jsp:doBody/>
    

    将这些打包成JAR的命令(maven的情况下自动打包)

    Jar cvf menutagfile.jar .\META-INF\*.*
    

    在父项目中的使用

    <%@ taglib prefix="mytagfile" uri="www.examulator.com/menutagfile" %>
    <html>
    <head>
    <title>Demonstration of Tag Files</title>
    </head>
    <body>
    <h1> What is going down? </h1>
    <mytagfile:menu/>
    </body>
    </html>
    

    注意:如果您的项目中没有 META-INF 文件夹,请在 src/main/resources 中创建一个。

    【讨论】:

      【解决方案2】:

      是的,有可能,但与 Struts 2 无关: http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags6.html#wp90207(在“打包的标记文件”下)。

      这里是一个例子:http://www.examulator.com/moodle/mod/resource/view.php?id=473

      【讨论】:

      • examulator 源码真的很好。支持并添加说明,以防其 URL 更改并且社区没有其内容;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 2010-10-23
      相关资源
      最近更新 更多