读书人

portlet其间的通信

发布时间: 2012-11-06 14:07:00 作者: rapoo

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

1 楼 liutao841204 2010-10-21 这个通信你已经做过了吗? 2 楼 hm2008 2010-11-04 不知道行不行,试试先。 3 楼 hua758209 2011-03-18 貌似不太好使

读书人网 >软件架构设计

热点推荐