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

2024-02-09

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

你有什么主意吗?

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

非常感谢


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

https://github.com/liferay/liferay-portal/tree/master/modules/apps/foundation/map/map-taglib 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}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Liferay 7 中创建自定义标签库 的相关文章

随机推荐

  • 应用模板上选择属性的 xslt 处理

    我有一个如下所示的 XSLT 并将该 xslt 应用于输入 xml 粘贴在下面 它工作正常 除了需要澄清的一件事 这是输入 xml
  • 这是 C# 4 中的协方差错误吗?

    在下面的代码中 我希望能够隐式转换elements to baseElements因为TBase可以隐式转换为IBase public interface IBase public interface IDerived IBase publ
  • 如何使用/绕过 Gmail 的 SMTP 出站发送限制?

    我正在使用我的 Gmail Apps for Domain 帐户在 Rails 应用程序中发送电子邮件以获取标准自动电子邮件 用户注册 忘记密码 通知管理员新评论等 但我担心每天设置的 500 封电子邮件限制由谷歌 谷歌建议克服该限制的一种
  • Python中的R函数rep()(复制列表/向量的元素)

    R 函数rep 复制向量的每个元素 gt rep c A B times 2 1 A B A B 这就像 Python 中的列表乘法 gt gt gt A B 2 A B A B 但使用rep R函数 还可以指定向量每个元素的重复次数 gt
  • OpenCV 的 unactorPoints 是否也可以纠正它们?

    我试图通过使用带有两个摄像头的 OpenCV 2 3 1 来确定两个对象之间的距离 但无法计算对象的 objectPoints OCV 2 3 1 MSVC Windows 7 我认为这是因为在计算视差之前没有对图像点进行校正 一 我首先要
  • 从 Heroku 中的 python 应用程序运行 java 子进程

    我是 Heroku 新手 我的 Flask Web 应用程序的后端逻辑实际上正在运行一个 Java 子进程 subprocess call 来获取一些辅助数据 我知道这样做是一件坏事 在部署时 Heroku 按预期工作 并从requirem
  • 在tinymce文本编辑器数据中的字符串末尾添加句点/点

    目前我的数据保存在 mysql 数据库中 如下所示 来自tinymce textarea 在 html 中显示数据时 我需要在字符串末尾附加一个句点或点 下面是示例 数据存储在数据库中 strong Hello World strong 当
  • 评估 XML 中的 XPath 表达式

    使用Add on SDK创建Firefox插件时 如何处理XML文件 使用 XPath 评估会引发错误 XPathResult 未定义 我正在尝试处理用这个代码 var iterator xmlDoc evaluate stream xml
  • 覆盖 left_join dplyr 来更新数据

    我的问题与此类似 但是我在 LHS 中有其他应保留的列https stackoverflow com a 35642948 9285732 https stackoverflow com a 35642948 9285732 y是一个子集x
  • 角度套接字 io 未定义

    这里有一个建议 https github com btford angular socket io issues 127 https github com btford angular socket io issues 127 确保您有 s
  • 如何使用缓冲区溢出攻击替换堆栈上的返回地址

    对于家庭作业 我正在执行一系列缓冲区溢出攻击 有人给了我一个要反汇编的程序 这是一个不正确调用的函数的 C 源代码gets 以及我应该强制程序调用的其他几个函数的源代码 对于其中一项任务 我必须 注入一些改变值的代码 然后 返回上述方法之一
  • 使用哪个 Java 库来录制连接的摄像机的视频?

    您可能认为有一个简单的解决方案 但没有 我的应用程序需要从 USB 火线 或任何连接 连接的相机捕获流 结果将是一个类似的文件输出 flv 我希望能够检测所有连接的摄像机并选择使用哪一台 同时使用一台或多台 gt 一个或多个输出文件 应用程
  • 不带绑定的验证规则

    我想在文本框上使用 ValidationRules 及其 UI 效果 而不实际将任何内容绑定到文本框 我想将文本框用于某些不绑定到任何内容但需要在焦点丢失后使用 ValidationRules 验证输入的输入 能做到吗
  • 如何创建仅可由特定类使用的构造函数。 (C++ Friend 相当于 C# 中的内容)

    据我所知 在C 中 不象C 中那样支持 friend 关键字 是否有另一种方法来设计一个类 可以实现相同的最终结果 而无需诉诸不可用的 friend 关键字 对于那些还不知道的人来说 Friend 关键字允许程序员指定类 X 的成员只能由类
  • 使用方法在 ArrayList 中循环

    在很多帮助下 我开发了一种方法 可以制作字谜词 然后将它们添加到ArrayList public void f String s String anagram ArrayList
  • 删除崩溃的 Innodb 表

    我无法删除 删除崩溃的 Innodb 表 我收到以下错误 错误 1051 42S02 未知表 帐户 如果我想创建它 我会收到以下错误 错误 1005 HY000 无法创建表 accounts errno 1 我的服务器在意外断电后会发生这种
  • 数 45 秒,暂停 20 秒,然后用不同的标题重复

    在尝试限制电池使用时 我不需要有繁忙的循环 所以我不确定如何解决这个问题 如果我有一个程序 允许某人唱歌 45 秒 然后他们暂停 20 秒喝一杯 然后重复唱一定数量的歌曲 我的计时器是在取消一次迭代并开始另一次迭代后 计时器无法正常工作 h
  • 使用asp.net中的web api通过http进行身份验证

    我观看并浏览了很多有关保护 ASP NET Web API 的页面 包括 http weblogs asp net jgalloway archive 2012 03 23 asp net web api screencast series
  • 为什么 Angular 构建会创建带有“es5”和“es2015”的文件,而不是“es6”(或者根本没有后缀)?

    我最近下载了Angular CLI 角度 cli 9 0 1 然后我继续创建一个新的应用程序 以便我可以创建一个新的 Angular 元素 将其打包并在另一个应用程序中使用它 在关注了几篇博客之后 我遇到的每个博客的最后一步都讨论了从放在
  • 在 Liferay 7 中创建自定义标签库

    我正在使用 Liferay 7 和 OSGi 模块编写一个应用程序 我需要创建一个跨所有模块 portlet 可用的自定义标签库 但我几乎不知道从哪里开始 你有什么主意吗 我应该将 taglib 定义 类和 JSP 存储在 OSGi 模块中