gpt4 book ai didi

java - 在 liferay 7 中的自定义主题内创建一个 portlet

转载 作者:行者123 更新时间:2023-11-30 02:19:22 26 4
gpt4 key购买 nike

我知道在 Liferay 中可以使用以下代码将预定义的 Portlet 嵌入到主题的 .ftl 文件中:

<@liferay_portlet["runtime"]
portletProviderAction=ACTION
portletProviderClassName="CLASS_NAME"
/>

但我想在主题内创建一个新的 portlet(及其所有 Java 类)。例如,我的主题项目的示例框架可以在下面找到。

Liferay 7 Theme Skeleton

我的问题是,在 Liferay 7 中,是否可以在主题内拥有完整的 portlet,并且最终用户可以访问该 portlet? (最终用户应该能够通过使用管理页面右侧的添加菜单将其添加到他们想要的任何位置)。

如果是,我应该将 Java 代码放在哪里?我应该如何部署和构建它?有没有例子?

它的好处之一是在一个包中拥有一个主题,其中包含许多不同的合适的自定义主题,您可以与其他人共享它。

最佳答案

这些天我一直远离主题,但了解它们主要部署为 Web 应用程序、WAR 文件(Liferay 在内部将其转换为 WAB 包)。虽然您可以在 WAR 文件中包含 portlet,但 Liferay 7 和 DXP 可以与许多较小的插件配合使用,而且通过将 portlet 打包在 OSGi bundle 中,您可以更加灵活。

除非您使用仍然需要 WAR 打包的技术来实现您的 portlet,否则您不会从将所有内容打包在同一个 WAR 文件中获得很多好处。更新 portlet 会导致您还必须始终更新主题以及与之打包的其他所有内容 - 并且您可以使用这一代 Liferay 做得更好。

我的建议是将 portlet 打包为 portlet,将主题打包为主题。插件的数量不再重要,就像在早期版本中一样。事实上,现在Liferay DXP的默认安装中有超过500个模块(插件)。没有必要减少插件的数量,除了要安装的文件数量之外,没有任何好处。这是我最不需要担心的事情。

关于java - 在 liferay 7 中的自定义主题内创建一个 portlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47301572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com