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通信