如何在开发环境中使用自定义JSP标签

3
我的问题非常简单,我认为应该有一个相当容易的答案。然而,谷歌让我失望了,所以我求助于你!
我有一个多项目设置,其中ProjectA是一个Web应用程序,依赖于ProjectBProjectB被构建成一个带有/META-INF/tags目录的JAR文件,然后包含在ProjectA WAR文件中并在Tomcat 8上运行。当这样构建项目时,一切都按预期工作。
我的问题出现在开发中。我正在使用本地修改版的Sysdeo Tomcat Plugin,在大多数情况下似乎都可以正常工作。问题在于,当Web应用程序ProjectA部署时,ProjectB仅通过Eclipse生成的bin目录包含在类路径中。由于它不是JAR文件,因此在默认配置中找不到/META-INF/myTags.tld。我使用<JarScanner scanAllDirectories='true' />选项解决了这个问题,在<Context>块中。太棒了。
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
@Shaggy - 听起来很不干净,但我很感谢你的建议!我本以为这是一个非常普遍的问题,只是我错过了“优雅”的答案,但现在看来,折衷方案似乎是解决问题的唯一途径。我想知道是否使用Eclipse的WTP也同样糟糕? - Andy
这就是我使用的方法,它非常适用于将.jar文件项目与Web模块链接以进行调试(以及其他好处)。但我仍然没有找到一种方法来将动态Web模块指向另一个项目中的标签。对于这个问题,我点赞,因为我现在很想知道是否有其他人知道解决方法。 - Shaggy
1个回答

0

您可以尝试将ProjectB的jar或war添加到ProjectA的META-INF类路径中,这将给出适当的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接