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

时间:2017-07-10 14:17:08

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

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

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

Liferay 6.2中的动作类:

门户网站 d:\ Liferay6.2workspace \门户\门户IMPL \ SRC \ COM \的liferay \门户\ rolesadmin \动作\ EditRoleAction.java

Ext Path: CutomRoles-EXT /文档根/ WEB-INF / EXT-IMPL / SRC / COM / liferay的/门户/ rolesadmin /动作/ EditRoleAction.java

Liferay 7.0GA4中的动作类:

d:\ Liferay7GA4 \门户\模块\应用\基础\角色\角色的管理员的web \ SRC \主\的java \ COM \的liferay \角色\管理员\网络\内部\门户*的 RolesAdminPortlet.java *

1 个答案:

答案 0 :(得分:0)

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

Ext为此目的从来没有必要,并且不应该首先使用。实际上,使用ext时,故意进行维护和升级比使用常规插件路径时要困难得多。使用Liferay 7和DXP,ext的使用应该是极其罕见的绝对例外。事实上,到目前为止,它刚刚被缺席后重新引入(因为在一些罕见的例外情况下,它仍然是唯一的方式)。但是,可以安全地假设您不需要它。

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

还有另一种选择:您可以通过在组织的站点中使用团队来实现相同的目标:他们的行为几乎与角色相似,但仅适用于单个站点(不过任何组织,但是您声明您的组织有站点)反正)