【问题标题】:How to use custom JSP tags in a development environment如何在开发环境中使用自定义 JSP 标签
【发布时间】:2015-06-29 02:59:08
【问题描述】:

我的问题相当简单,我认为它应该有一个相当简单的答案。然而,谷歌让我失望了,所以我求助于你!

我有一个多项目设置,其中ProjectA 是一个依赖于ProjectB 的Web 应用程序。 ProjectB 被构建到具有/META-INF/tags 目录的 JAR 文件中,然后包含在 ProjectA WAR 文件中并在 Tomcat 8 上运行。这样构建项目后,一切都按预期工作。

我的问题出现在开发中。我正在使用Sysdeo Tomcat Plugin 的本地修改版本,在大多数情况下似乎工作得很好。问题在于,当部署 Web 应用程序 ProjectA 时,ProjectB 通过 Eclipse 生成的 bin 目录简单地包含在类路径中。由于它不是 JAR 文件,因此在默认配置中找不到 /META-INF/myTags.tld。我使用<Context> 块中的<JarScanner scanAllDirectories='true' /> 选项解决了这个问题。太棒了。

TLD 文件列出了指向/META-INF/tags 目录中位置的标签,如下所示:

<tag-file>
  <name>pane</name>
  <path>/META-INF/tags/pane.tag</path>
</tag-file>

但在运行时,我得到:

org.apache.jasper.JasperException: File [/META-INF/tags/pane.tag] not found

我希望我只是在这里缺少 Jasper 的一些配置,但我似乎找不到它。感谢您的帮助,如果我可以提供更多详细信息,请尽管询问!

【问题讨论】:

  • 我知道这可能不是您想要的,但我发现在每个项目的 /META-INF/tags/ 文件夹中包含标记文件更容易。我知道它会创建标记文件的重复副本,但底层 Java 代码只内置到 .jar 文件中一次。我有 ProjectA、ProjectB 和 ProjectC,它们都依赖于 ProjectD jar 中内置的标签(包含在 ProjectsA-C 中。我发现处理它的唯一方法是在每个项目中都有我的 tags.tld 标签。
  • @Shaggy - 这听起来很脏,但我很感激你的意见!我原以为这是一个非常常见的问题,我只是错过了“优雅”的答案,但似乎越来越像 kludging 是解决方案的唯一方法。我想知道使用 Eclipse 的 WTP 是否也一样糟糕?
  • 这就是我使用的,它非常适合将 .jar 文件项目与 Web 模块链接以进行调试(以及其他好处)。我仍然没有找到将动态 Web 模块指向另一个项目中的标签的方法。为这个问题 +1,因为如果其他人知道,我现在很感兴趣。

标签: java eclipse jsp tomcat sysdeo


【解决方案1】:

你可以尝试在 ProjectA 的 META-INF 的类路径中添加 ProjectB jar 或战争,这将给出恰当的结果

【讨论】:

    猜你喜欢
    • 2014-09-03
    • 1970-01-01
    • 2014-11-16
    • 2020-08-23
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多