开发工具:Jdeveloper 11.1.1.7
1.创建Portlet Application
a.选择File->New,在新建向导中选择WebCenter Portal - Portlet Producer Application,如下图:
b.在向导中输入Application Name,如下图所示:
c.其他配置默认即可,点击【Finish】完成。
2.创建Portlet工程
a.在Portlets上点击右键,选择New
b.在向导中左侧Categories中展开Web Tier 选择Portlets,在右侧窗口选择“Standards-based Java Portlet (JSR 286)”,点击【OK】
c.在如下向导视图中,输入相关信息,点击下一步【Next】(这里使用默认设置Portlet1):
d.在如下向导视图中,本例使用默认配置(也可根据实际情况输入相关信息),直接点击【Finish】:
e.至此,一个简单的JSR 286 Portlet创建完成。
f.参照以上步骤再创建一个Portlet,本例为Portlet2,创建完成后,应用导航视图如下:
3.为Portlet 添加事件
a.双击打开portlet配置文件portlet.xml,选择Events。
b.点击“添加”图标,添加事件,选择Qualified Name,输入命名空间Namespace,(此处为:http://xmlns.hirisun.com/portlet/EventSample);在Name字段输入事件名称(此处为:myEvent);Payload Type字段此处选择或输入java.lang.Integer;如下图所示:
c.以上步骤添加完成后,选择左侧Portlets,再选择portlet1,随后选择右侧Events选项卡,如下图所示:
d.在Publishing Events列表中选择myEvent事件,添加至选择(Selected)列表,如下图所示:
(注:简要说明Publishing Events及Processing Events,Publishing Events为事件的发起者,Processing Events为事件处理者,简单描述为,实现Publishing Events的portlet触发myEvent事件后,实现Processing Events的portlet将接收事件进行处理。
e.参照以上步骤,再选择portlet2,随后选择右侧Events选项卡,在Processing Events中添加myEvent到选中列表,如下图所示:
4.编写事件触发代码
a.打开Web Content/portlet1/html/view.jsp,如下图所示:
b.在View.jsp页面中添加如下代码:
<form action="<portlet:actionURL/>" method="POST">
<input class="portlet-form-button" type="submit" name="testEvent" value="事件测试">
</form>
c.双击打开Portlet1.java,如下图:
d.在processAction方法中添加如下代码:
String testEventAction = request.getParameter("testEvent");
if (testEventAction != null){
//调用事件
response.setEvent(new QName("http://xmlns.hirisun.com/portlet/EventSample", "myEvent"),1);
response.setPortletMode(PortletMode.VIEW);
response.setWindowState(WindowState.NORMAL);
}
e.打开Portlet2.java,在此类中重载processEvent函数,添加代码如下:
@Override
public void processEvent(EventRequest eventRequest, EventResponse eventResponse) throws PortletException,
IOException {
//super.processEvent(eventRequest, eventResponse);
Event event = eventRequest.getEvent();
if (event.getName().equals("myEvent"))
{
System.out.println("myEvent in portlet2 is called!");
System.out.println("myEvent value:"+event.getValue());
eventResponse.setRenderParameter("TEST_P", "调用了事件");
}
}
f.打开Web Content/portlet2/html/view.jsp,修改代码如下:
<%@ page contentType = "text/html; charset=UTF-8"
pageEncoding = "UTF-8"
import = "javax.portlet.*, java.util.*, com.hirisun.portlet.Portlet2, com.hirisun.portlet.resource.Portlet2Bundle"%>
<%@ taglib uri = "http://java.sun.com/portlet_2_0" prefix="portlet"%>
<portlet:defineObjects/>
<%
String testP = renderRequest.getParameter("TEST_P");
%>
<p class="portlet-font">Welcome, this is the ${renderRequest.portletMode} mode.</p>
<%
if(testP!=null){
%>
<div style="font-size:16px;color:red;font-weight:bold;"><%=testP%></div>
<%
}
%>
g.此致,保存整个项目,运行测试(可创建WebCenter Portal - Framework Application测试)。
5.运行测试
a.在集成服务器中运行Portlets项目,右键点击portlet.xml,选择Run,如下图:
运行成功后,如下图:
点击WSRP V2 WSDL,复制该链接到portal中进行注册使用。
b.运行portlal项目,复制以上portlet WSDL地址进行注册,如下图:
c.在页面中分别添加Portlet1与Portlet2,如下图:
d.访问测试: