标签库不是 Liferay Portal 特定的模块。它们是标准技术,是(是?)Java EE 规范的一部分。我所知道的最后一篇涵盖它们的官方教程是The Java EE 5 Tutorial。您可能应该阅读它以了解如何构建自定义标签库。您在 Liferay Portal 中使用它们的方式与在任何其他 Web 应用程序中使用它们的方式没有什么不同。
请记住 JSP,因此标记库是相当古老的技术。虽然仍然广泛用于许多项目(如 Liferay Portal),但我认为它们在最近的 Java/Jakarta EE 规范中被 JSF 取代。此外,随着过去几年 Web 的发展,许多开发人员和产品(如 Liferay)正在从后端 UI 生成转移到 Web 组件和现代 JS 框架之类的东西。
更新(以解决评论中的说明):
Liferay 用于构建 taglib 包的工具中没有模板(据我所知)。但是一个标准的 OSGi 模块应该可以完成这项工作。重要的部分是告诉您jsp.taglib
在文件中提供了该功能bnd.bnd
:
Provide-Capability:\
osgi.extender;\
osgi.extender="jsp.taglib";\
uri="http://YOUR_DOMAIN/tld/lib";\
version:Version="${Bundle-Version}"
确保还导出相关包。你可以检查其他 Liferay 标签库是如何做的。例如资产标签库。
在消费者捆绑包方面,您有 2 个选项:
- 如果您使用 Liferay 的工作区(或相关的 BND 插件),您可以简单地添加
-jsp: *.jsp,*.jspf
文件中的说明bnd.bnd
。这将告诉触发将生成所需要求的 BND 插件。
- 如果您不使用该工具,则需要手动添加要求:
Require-Capability:\
osgi.extender;\
filter:="(&(osgi.extender=jsp.taglib)(uri=http://YOUR_DOMAIN/tld/lib))"