版权声明:本文为 @WildMeowth 的原创文章,可以转载,但请务必注明作者和出处!!!原文链接:wildmeowth
摘要
本文主要介绍IBM Websphere Portal中多个portlet间的数据交互. 本文仅介绍其中两种.
正文
1.共享呈现参数
对于共享呈现参数需要在 portlet.xml 部署文件中的<portlet-app>
中使用 <public-render-parameter>
标签.
For example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<portlet-app ...>
<portlet>
<portlet-name>Portlet A</portlet-name>
...
</portlet>
...
<public-render-parameter>
<identifier>param1</identifier>
<name>param1</qname>
</public-render-parameter>
<public-render-parameter>
<identifier>param2</identifier>
<name>param2</name>
</public-render-parameter>
</portlet-app>
然后在每个 <portlet>
中使用 <supported-public-render-parameter>
标签.
For example:
1
2
3
4
5
6
7
8
9
10
11
<portlet>
<portlet-name>Portlet A</portle-name>
......
<supported-public-render-parameter>param1</supported-public-render-parameter>
</portlet>
<portlet>
<portlet-name>Portlet B</portle-name>
......
<supported-public-render-parameter>param1</supported-public-render-parameter>
</portlet>
共享呈现参数的使用 与非共享呈现参数的使用方法相同, 共享呈现参数可以通过 ActionResponse 的 setRenderParameter(“key”,”value”) 方法设定, 并通过 RenderRequest 的 getParameter(“key”) 来获得.
For example:
Portlet A 设定共享呈现参数
1
2
3
4
5
6
public void processAction(ActionRequest actionRequest,
ActionResponse actionResponse) throws PortletException, IOException {
...
actionResponse.setRenderParameter("param1", publicParam);
...
}
Portlet B 获取共享呈现参数
1
2
3
4
5
6
public void render(RenderRequest renderRequest,
renderResponse renderResponse) throws PortletException, IOException {
...
String publicValue = renderRequest.getParameter("param1");
...
}
以上DONE.
2.PortletSession
PortletSession在应用级即PortletSession.APPLICATION_SCOPE, 可以在多个portlet间进行数据共享.
For example:
Portlet A 中:
1
2
String data = "Don't worry, be happy!";
PortletSession session = request.getPortletSession().setAttribute("data", data, PortletSession.APPLICATION_SCOPE);
Portlet B 中:
1
String data= (String) request.getPortletSession().getAttribute("data",PortletSession.APPLICATION_SCOPE);
以上就是在IBM websphere portal中多个portlet间的数据交互的两种方法.