如何替换Liferay本机portlet上的函数

如何替换Liferay本机portlet上的函数,liferay,portlet,liferay-6,Liferay,Portlet,Liferay 6,我正在对Liferay安装附带的本机Liferay portlet进行更改。如何通过钩子或类似方法将函数更改为自己的实现 我已经阅读了如何创建前置和后置条件以及如何创建接口的新实现,但我不知道如何在portlet中替换random类中的random函数,我希望保持原来的状态。有几种方法可以修改本机Liferay portlet的功能。这里是一个快速概述 大多数钩子功能都是通过/docroot/WEB-INF目录中的liferay-hook.xml文件描述的。以下是最常用的方法 在liferay-

我正在对Liferay安装附带的本机Liferay portlet进行更改。如何通过钩子或类似方法将函数更改为自己的实现


我已经阅读了如何创建前置和后置条件以及如何创建接口的新实现,但我不知道如何在portlet中替换random类中的random函数,我希望保持原来的状态。

有几种方法可以修改本机Liferay portlet的功能。这里是一个快速概述

大多数钩子功能都是通过/docroot/WEB-INF目录中的liferay-hook.xml文件描述的。以下是最常用的方法

在liferay-hook.xml文件中,将以下子项添加到

/META-INF/custom\u JSP
此元素定义要覆盖的JSP的放置位置。例如,您可能希望在以下位置为文档库portlet重写view.jsp:

[custom-jsp-dir]/html/portlet/document_library/view.jsp
对于这个,您必须定义一个portal.property文件,该文件通常存储在

/docroot/WEB-INF/src/portal.property
并告诉
liferayhook.xml
它的位置。以下是上述情况的一个示例

<portal-properties>portal.properties</portal-properties>
格式如下:

value.object.listener.[class-to-listen]=[my-listener-class]
您的类应该实现
com.liferay.portal.model.BaseModelListener

在这里,您可以收听添加、更新、删除等事件

这里有一个类似的故事,在
元素add中的
liferayhook.xml


com.liferay.portal.service.UserService
my.example.service.UserServiceImpl
在这里,您的实现应该为特定服务扩展正确的包装器类。例如,上面的例子是

com.liferay.portal.service.UserServiceWrapper;
您现在应该能够覆盖UserService的所有公共方法,如
updateUser(..)

(仅适用于Liferay 6.1版本) 以与扩展服务非常相似的方式,定义


/留言板/视图
my.example.action.SampleViewAction
你需要扩展

com.liferay.portal.kernel.struts.BaseStrutsAction
您将有权访问请求并可以执行自定义操作。它与定制JSP结合使用非常强大

祝你好运 请确保检查与您正在使用的Liferay版本的兼容性


如果你需要更多的控制,你需要使用ext插件。

我发现我很痛苦。通读并查看是否有帮助。@RP…嗨…我想将我自己的方法添加到现有的日历portlet中。.这是我的问题和代码…你能看一下并告诉我我做错了什么吗。。
com.liferay.portal.kernel.struts.BaseStrutsAction