liferay - 我们如何覆盖 liferay7 中的 liferay 模块?

标签 liferay liferay-7 liferay-6.2 liferay-dxp

我是 liferay 7 的新手,实际上我们正在将 liferay 6.2 迁移到 liferay-7,在 6.2 中我们使用 ext 来覆盖 Action 类但在 liferay-7 中我得到了一些融合,你能帮忙吗我出去。

我的分机的主题是:每当从控制面板在组织中创建新角色时,我们需要将角色信息和组织信息存储在我们的自定义表中在 LR6.2 中覆盖了 EditRoleAction.java,所以我们试图在 LR7 中实现同样的事情。

Liferay 6.2 中的 Action 类:

传送门路径: D:\Liferay6.2workspace\portal\portal-impl\src\com\liferay\portlet\rolesadmin\action\EditRoleAction.java

扩展路径: CutomRoles-ext/docroot/WEB-INF/ext-impl/src/com/liferay/portlet/rolesadmin/action/EditRoleAction.java

Liferay 7.0GA4 中的 Action 类:

D:\Liferay7GA4\portal\modules\apps\foundation\roles\roles-admin-web\src\main\java\com\liferay\roles\admin\web\internal\portlet*RolesAdminPortlet.java *

最佳答案

重写 Action 听起来确实不是正确的去处。查找ServiceWrappers - 这些将在业务层上运行,您可以将额外的代码添加到(从内存中)RoleLocalService.addRole(...) 和其他相关方法。

Ext 从来都不是这个目的所必需的,一开始就不应该使用。事实上,使用 ext 与使用常规插件路线相比,您故意使维护和升级更加困难。在 Liferay 7 和 DXP 中,ext 的使用应该是极其罕见的绝对异常(exception)。事实上,它在迄今为止缺席之后才被重新引入(因为在一些罕见的异常(exception)情况下它仍然是唯一的方法)。但是,可以安全地假设您不需要它。

既然这个答案的评论中的描述比问题中的描述更进一步:您可能还需要一些 portlet 级别的自定义。为此:确定 portlet 当前在何处实现(例如,确定模块)并覆盖其操作(很有可能 this article 可以提供帮助)以及可能的 UI。

还有另一种选择:您可以通过在组织的站点中使用 Teams 来实现相同的目的:它们的行为几乎类似于角色,但仅适用于单个站点(虽然没有组织,但您声明您的组织有站点无论如何)

关于liferay - 我们如何覆盖 liferay7 中的 liferay 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45014458/

相关文章:

java.lang.ClassCastException : com. sun.mail.handlers.multipart_mixed 无法转换为 javax.activation.DataContentHandler

java - 将 Liferay 7.x 与 Oracle 11g2 外部数据库连接 - NullPointerException

java - 如何在 Liferay 中为自定义角色的布局添加 VIEW 权限

javascript - Liferay 6.2 表单验证问题

Liferay - 登录登陆后的中间页面

javascript - jQuery.get() 的奇怪问题

permissions - 当我将 portlet.properties 文件添加到 portlet 时,为什么会收到 HotDeployException? (Liferay 门户开发)

mysql - 如何重置Liferay? (删除所有内容/用户/定制)

java - 在 portlet 和 *LocalServiceImpl 中使用公共(public)对象

elasticsearch - 在Liferay 7中禁用ElasticSearch日志