将标签文件嵌入 JAR 中

发布于 2024-07-07 01:11:16 字数 77 浏览 9 评论 0原文

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

Is it possible to do this? What I'm trying to accomplish here is the creation of an extensible Struts 2 plugin with customizable screens to avoid code duplication in similar projects.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最冷一天 2024-07-14 01:11:16

是的,这是可能的,但它与 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

Yes, it is possible, but it has nothing to do with Struts 2:
http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags6.html#wp90207 (under "Packaged Tag Files").

Here is an example: http://www.examulator.com/moodle/mod/resource/view.php?id=473

め可乐爱微笑 2024-07-14 01:11:16

引用源中的步骤(取自上一篇)答案)以防 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 中创建一个。

Quoting steps from this source(taken from prev. answer) in case URL changes. (Simplest solution I found on the internet)

When wrapped in a jar (Java archive) tag files require a tld.

menu.tld placed in the META-INF directory.

<?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 placed in the META-INF\tags directory.

<%@ tag body-content="tagdependent" %>
<%@ attribute name="menutext" rtexprvalue="true"%>

<h1>This is my tag file</h1>
<jsp:doBody/>

The command to package these into JAR(Auto package in case of maven)

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

Usage in the parent project

<%@ 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>

Note: In case you do not have a META-INF folder in your project, create one inside src/main/resources.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文