portlet之间的通信

1.portlet之间的事件通信

在一个portlet任何个方法里进行设置事件:

public void processAction(ActionRequest request, ActionResponse response)
   throws PortletException, IOException {
   response.setEvent("eventbyparameter", "byparameter");

 }

在另一个portlet处理找一个事件:

public void processEvent(EventRequest request, EventResponse response)
   throws PortletException, IOException {
  Event event = request.getEvent();
  if(event.getName().equals("eventbyparameter")) {
     response.setRenderParameter("parameter", event.getValue().toString());
  }
}

 

这是需要在portlet.xml文件里进行配置的,如下:

在一个portlet里定义发布事件名称

<supported-publishing-event>
         <name>eventbyparameter</name>
</supported-publishing-event>

在另一个portlet里定义相应处理事件

<supported-processing-event>
         <name>eventbyparameter</name>
 </supported-processing-event>

事件的定义:

<event-definition>
  <name>eventbyparameter</name>
  <value-type>java.lang.String</value-type>
 </event-definition>

 

2.portlet之间的公共参数通信

在一个portlet里设置参数:

public void processAction(ActionRequest request, ActionResponse response)
   throws PortletException, IOException {
   response.setRenderParameter("pub-by-parameter", "combypvalue");
 }

在另一个portlet里获得参数:

protected void doView(RenderRequest request, RenderResponse response)
   throws PortletException, IOException {
   String combyparameter = request.getParameter("pub-by-parameter");
 }

这是需要在portlet.xml文件里进行配置的,如下:

 

在portlet.xml文件里设置公共渲染参数;两个portlet都要设置,如下:

在一个portlet定义里设置:

<supported-public-render-parameter>pub-by-parameter</supported-public-render-parameter>

在另一个portlet定义设置:

<supported-public-render-parameter>pub-by-parameter</supported-public-render-parameter>

最好还需要定义公共渲染参数,如下:

<public-render-parameter>
  <identifier>pub-by-parameter</identifier>
  <name>combyparameter</name>

 

3.portlet之间的session通信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值