liferay6.2通过事件机制实现不同portlet之间数据传递
2017-04-11 18:16
531 查看
两个portlet分别为sendportlet(发送)和receiveportlet(接收)
1.两个portlet要在portlet.xml文件中进行如下相同的配置:
<default-namespace>http://localhost:8080/FlowData</default-namespace>
<event-definition>
<name>flow-data</name>
<value-type>java.lang.String</value-type>
</event-definition>
2.在sendportlet(发送)的portlet.xml的<portlet></portlet>标签内加上如下配置:
<supported-publishing-event>
<name>flow-data</name>
</supported-publishing-event>
3.在receiveportlet(接收)的portlet.xml的<portlet></portlet>标签内加上如下配置:
<supported-processing-event>
<name>flow-data</name>
</supported-processing-event>
4.在sendportlet(发送)的portlet的processAction方法中使用如下代码发送消息
actionResponse.setEvent("flow-data", "你要传的参数");
5.在receiveportlet(接收)的portlet中,增加方法:
@EventMapping
public void processEvent(EventRequest eventRequest, EventResponse arg1)
throws PortletException, IOException {
Event event = eventRequest.getEvent();
String value = (String) event.getValue();
System.out.println("----"+value);
super.processEvent(eventRequest, arg1);
}
当sendportlet执行完processAction方法后,receiveportlet会马上调用processEvent方法,value就是接收到的参数。
1.两个portlet要在portlet.xml文件中进行如下相同的配置:
<default-namespace>http://localhost:8080/FlowData</default-namespace>
<event-definition>
<name>flow-data</name>
<value-type>java.lang.String</value-type>
</event-definition>
2.在sendportlet(发送)的portlet.xml的<portlet></portlet>标签内加上如下配置:
<supported-publishing-event>
<name>flow-data</name>
</supported-publishing-event>
3.在receiveportlet(接收)的portlet.xml的<portlet></portlet>标签内加上如下配置:
<supported-processing-event>
<name>flow-data</name>
</supported-processing-event>
4.在sendportlet(发送)的portlet的processAction方法中使用如下代码发送消息
actionResponse.setEvent("flow-data", "你要传的参数");
5.在receiveportlet(接收)的portlet中,增加方法:
@EventMapping
public void processEvent(EventRequest eventRequest, EventResponse arg1)
throws PortletException, IOException {
Event event = eventRequest.getEvent();
String value = (String) event.getValue();
System.out.println("----"+value);
super.processEvent(eventRequest, arg1);
}
当sendportlet执行完processAction方法后,receiveportlet会马上调用processEvent方法,value就是接收到的参数。
相关文章推荐
- Android消息机制之实现两个不同线程之间相互传递数据相互调用
- 通过intent、ClipboardManager在android不同activity之间传递数据
- cocos2dx EventListenerCustom类控制事件的分发 处理不同层之间的事件传递以及自定义用户数据
- [Android]通过剪切板实现Activity之间传递数据
- Vue.js 实现表单数据参数传递,以及不同独立按钮之间的参数传递
- 通过事件机制实现 Eclipse 插件之间的通信
- Ex3.10 不同Activity之间的数据传递——Bundle对象的实现
- matlib同一界面中不同控件之间的数据传递机制
- 通过Bundle传递不同Intent之间的原始数据
- Android判断网络状态是否断开+Android完全关闭应用程序+ 本文讲述了Android中不同Activity之间的数据传递 — Bundle对象的实现(-)+Android中Bundle的使用示例
- android传递数据方式4--通过Intent实现Activity之间的数据传递
- Liferay 6开发学习(三十):跨页面Portlet之间的调用与数据传递
- 100分!!!如何实现两个不同手机不同APP之间的实时的数据传递
- 不同页面之间通过传递控件实现页面传值
- Bundle对象实现不同Activity之间数据传递
- 关于C#和JAVA之间通过Socket实现局域网传递数据
- 通过Bundle传递不同Intent之间的原始数据
- iOS --- 通过openURL实现APP之间跳转并传递数据
- 不同Activity之间传递数据--Bundle对象和startActivityForResult方法的实现
- 不同Activity之间的数据传递--Bundle对象的实现