我在liferay中开发了一个portlet我有一个表(实体),当portlet部署时我想用数据填充它。 如何在部署操作中调用类的方法?如何定义在Liferay portlet中部署的操作?
回答
最后我解决了它。
我必须在src文件夹的某处创建我的动作类。
package com.example.portal.events;
import java.util.Arrays;
import com.liferay.portal.kernel.events.SimpleAction;
public class ExampleStartupAction extends SimpleAction {
public void run(String[] ids) {
System.out.println("############################ This is a Startup Action ##########################"+ ids.length+" "+Arrays.toString(ids));
}
}
然后,你必须在WEB-INF创建src文件夹内的一个名为portal.properties一个文件,并添加这一行吧:
application.startup.events=com.example.portal.events.ExampleStartupAction
最后,你必须编辑的Liferay-hook.xml文件在上面添加以下行:
<portal-properties>portal.properties</portal-properties>
方法运行,将在deplet的portlet期间运行。
您也可以重写并使用portlet类的init()方法。
通过使用servlet上下文初始值设定项,您可以在上下文初始化和销毁期间执行操作。 在web.xml中添加这个..
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<listener>
<listener-class>MyListenerClass</listener-class>
</listener>
</web-app>
与实现监听器类
import javax.servlet.*;
import javax.servlet.http.*;
public class MyListenerClass implements ServletContextListener {
public void contextInitialized(ServletContextEvent e) {
...
}
public void contextDestroyed(ServletContextEvent e) {
...
}
}
监听Web应用程序的初始化并不意味着您的Portlet已成功部署。试想一下,在您的Web应用程序之后,Liferay的Web应用程序将被初始化。在这种情况下,您将无法访问侦听器中的任何Liferay或portlet特定功能。 –
恕我直言,问题是不要在这里访问任何portlet特定的功能。所以初始化的顺序并不重要,这个解决方案适合于当portlet正在部署时要求的问题 – Sumukh
。即使他要求一个Web应用程序,我宁愿使用现代的@ WebListener代替。 –
- 1. portlet部署到Liferay
- 2. 如何从liferay中取消部署portlet?
- 3. 如何将Portlet部署到Liferay?
- 4. 如何从Eclipse部署portlet到Liferay
- 5. Liferay portlet部署Java错误
- 6. Liferay:自定义在portlet部署期间添加的web.xml HeaderFilter
- 7. 当我在liferay中一个接一个地部署两个portlet时,第二个部署的portlet正在取消部署liferay中的第一个部署的portlet
- 8. 如何实施已部署在Liferay门户中的Portlet的SSO
- 9. 在Liferay上部署JSR 286 portlet
- 10. 在Liferay Portlet内部署Web项目
- 11. Liferay:看不到部署的portlet
- 12. Luminis/Liferay的portlet部署错误
- 13. 通过Jenkins部署Liferay Portlet战争?
- 14. Liferay Portlet部署 - 类抛出异常
- 15. 无法成功部署liferay portlet
- 16. Liferay自定义登录Portlet
- 17. 的Liferay的UI:在自定义portlet
- 18. liferay portlet中的自定义类别
- 19. Vaadin应用没有作为portlet部署在liferay上
- 20. 如何自定义开箱的portlet在Liferay中7
- 21. 如何在liferay中构建特定于portlet的portlet
- 22. Liferay的marketplace-portlet在版本6.2中没有正确部署?
- 23. 在Liferay中部署和测试portlet的简单步骤
- 24. Liferay文档和介质Portlet的自定义工作流定义
- 25. 在部署portlet之前部署服务
- 26. 如何在liferay中自定义博客portlet
- 27. 在Liferay 7中创建并部署Vaadin 7 Portlet
- 28. 通过Liferay以编程方式在位置中部署portlet?
- 29. 如何在已部署的应用程序中部署portlet?
- 30. Liferay的7 - 嵌入自定义portlet到
看到http://stackoverflow.com/questions/10353881/overriding-liferay-startup-events/10356947 – Mark