我是Liferay的新手,我需要创建一个可以在liferay Portlet中使用的自定义标签库。但是问题是,我没有得到在Liferay中创建和使用它的任何分步教程或指南。
第一个问题是,我无法弄清楚我需要为此创建哪种项目。
对于Ex 。如果要创建portlet,则在创建新的liferay模块时需要使用MVC-PORTLET项目模板。以同样的方式, 我可以使用哪些模板在Liferay中创建custon标记库 。
此后,我需要了解创建标记并将其在portlet中使用的其余步骤。
答案 0 :(得分:1)
标签库不是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标签库的运行情况。例如asset-taglib。
在消费者捆绑包方面,您有2个选择:
-jsp: *.jsp,*.jspf
bnd.bnd
文件中的指令。这将告诉触发一个BND插件,该插件将生成所需的需求。
Require-Capability:\
osgi.extender;\
filter:="(&(osgi.extender=jsp.taglib)(uri=http://YOUR_DOMAIN/tld/lib))"