在 Liferay 7 中创建自定义标签库

Posted

技术标签:

【中文标题】在 Liferay 7 中创建自定义标签库【英文标题】:Creating a custom taglib in Liferay 7 【发布时间】:2016-11-26 03:32:37 【问题描述】:

我正在使用 Liferay 7 和 OSGi 模块编写应用程序。我需要创建一个可用于所有模块(portlet)的自定义 taglib,但我完全不知道从哪里开始。

你有什么想法吗?

我应该将 taglib 定义、类和 JSP 存储在 OSGi 模块中吗?如果没有,我可以在哪里以及如何从 portlet 模块中引用它?

非常感谢

【问题讨论】:

【参考方案1】:

在大多数情况下,您应该能够完全在 OSGi 模块中交付 taglib。您可以在 Liferay 的源代码中找到几个执行此操作的示例,例如:

https://github.com/liferay/liferay-portal/tree/master/modules/apps/foundation/map/map-taglib

正如您在该示例中看到的那样,您可以通过使用 bnd.bnd 文件中的 Provide-Capability 声明模块将导出 taglib:

Provide-Capability: osgi.extender;osgi.extender="jsp.taglib";uri="http://liferay.com/tld/map";version:Version="$Bundle-Version"

【讨论】:

这种机制是否可以覆盖核心 taglib 类?

以上是关于在 Liferay 7 中创建自定义标签库的主要内容,如果未能解决你的问题,请参考以下文章

在 IOS 中创建自定义 UITableView

Django中创建自定义标签与过虑器

在 IIS 7 中创建自定义 503 页面

使用 6 行 7 列的 Uibutton 数组在 iphone 中创建自定义日历

如何在 ios 8 和 ios 7 中创建自定义弹出视图?

如何在 Blend 中创建自定义列表