本教程介绍Rational Application Developer 7中JSR168 Portlet的开发,以两个例子说明JSR168 Portlet开发的基本内容和步骤,所实现Portlet的功能与文章《在Rational Application Developer中开发简单Portlet》一致。
IBM要放弃自己那套Portlet开发API的意思已经很明显了,在RAD7中这些API已经被打上波浪线,标识成“不建议使用类型”,deprecated了。RSA7中更直接,直接在类名上划黑线,明确告诉你最好不要在用了,呵呵
开发环境:WinXP+SP2,RAD 7.0.0.3
测试环境:Win2003+SP2,WebSphere Portal6
示例1:在Portlet编辑页面中添加用户登录界面,在视图页面中显示用户名和密码。
1. 启动RAD。
2. 新建Portlet项目。
选择“文件-》新建-》Portlet项目”。
将项目命名为PortletExample,选择“创建portlet”,RAD就会自动在项目中添加一portlet。由于是要部署在Portal6上的,目标运行时设置为“WebSphere Portal V6.0 stub”。Portlet API选择“JSR 168 Portlet”,我们要开发的就是它嘛,如果还是“IBM Portlet”,搞不好哪天就被IBM自己抛弃了 Portlet类型选择“基本Portlet”,RAD就会创建一示例portlet,我们只需在其上做一些修改即可。其它都接受默认即可。
将所有的视图都勾上。
取消“将操作侦听器添加至portlet以处理操作请求”,我们暂时不会涉及到该方面内容。然后“完成”即可。
项目建立完成后我们就可以看见如图所示的项目文件列表。
WebContent下包含了项目的jsp文件,五个jsp文件分别对应五种视图。
3.编写代码。
(1)在PortletExamplePortlet.java中定义三变量EDIT_USERNAME、EDIT_PASSWORD和EDIT_CANCEL。EDIT_CANCEL用于处理按钮的取消事件。
publicstaticfinal String EDIT_USERNAME = "PortletExamplePortletEditUsername";
publicstaticfinal String EDIT_PASSWORD = "PortletExamplePortletEditPassword";
publicstaticfinal String EDIT_CANCEL = "PortletExamplePortletEditCancel";
(2)编辑PortletExamplePortlet.java,处理EDIT_SUBMIT和EDIT_CANCEL按钮事件,在函数processAction中针对编辑视图的提交请求和取消进行处理,将username和password两值存入到PortletPreferences中。
if( request.getParameter(EDIT_SUBMIT) != null ) {
PortletPreferences prefs = request.getPreferences();
try {
prefs.setValue(EDIT_USERNAME,request.getParameter(EDIT_USERNAME));
prefs.setValue(EDIT_PASSWORD,request.getParameter(EDIT_PASSWORD));
prefs.store();
} catch( ReadOnlyException roe ) {
} catch( ValidatorException ve ) {
}
response.setPortletMode(PortletMode.VIEW);
}
if( request.getParameter(EDIT_CANCEL) != null ) {
response.setPortletMode(PortletMode.VIEW);
}
使用response.setPortletMode(PortletMode.VIEW);语句决定提交后将转向的视图。
(3)编辑PortletExamplePortletEdit.jsp,删除RAD自动生成的代码,设计用户名和密码提交页面。
<%@page session="false" contentType="text/html" pageEncoding="GB18030" import="javax.portlet.*,portletexample.*"%>
<%@taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<portlet:defineObjects/>
<%
PortletPreferences prefs = renderRequest.getPreferences();
if (prefs != null) {
String username = prefs.getValue(PortletExamplePortlet.EDIT_USERNAME, "");
String password = prefs.getValue(PortletExamplePortlet.EDIT_PASSWORD, "");
%>
<FORM ACTION="<portlet:actionURL/>"METHOD="POST">
Username:<INPUT NAME="<%=PortletExamplePortlet.EDIT_USERNAME%>"VALUE="<%=username%>"TYPE="text"><BR>
Password:<INPUT NAME="<%=PortletExamplePortlet.EDIT_PASSWORD%>"VALUE="<%=password%>"TYPE="password"><BR>
<INPUT NAME="<%=PortletExamplePortlet.EDIT_SUBMIT%>"TYPE="submit" value="Save">
<INPUT NAME="<%=PortletExamplePortlet.EDIT_CANCEL%>"TYPE="submit" value="Cancel">
</FORM>
<%
} else {
%>
Error: PortletPreferences is null.
<%
}
%>
注意标签<portlet:defineObjects/>,在页面中添加它后才可调用PortletConfig、RenderRequest、RenderResponse这几个对象。
(4)编辑PortletExamplePortletView.jsp,在页面上输出用户名和密码值。
<%@page session="false" contentType="text/html" pageEncoding="GB18030" import="javax.portlet.*,portletexample.*" %>
<%@taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<portlet:defineObjects/>
<%
PortletPreferences prefs = renderRequest.getPreferences();
if (prefs != null) {
String username = prefs.getValue(PortletExamplePortlet.EDIT_USERNAME, "");
String password = prefs.getValue(PortletExamplePortlet.EDIT_PASSWORD, "");
%>
<P><%=PortletExamplePortlet.EDIT_USERNAME%>:<%=username%></P>
<P><%=PortletExamplePortlet.EDIT_PASSWORD%>:<%=password%></P>
<%
} else {
%>
Error: PortletPreferences is null.
<%
}
%>
4.全部修改完成后保存,导出WAR安装包。
指定导出位置。
5.在Portal6上安装,新建一测试页面将该Portlet添加到页面上。
初始运行界面如图,由于最初用户名和密码都为空,所以显示的也都是空的。
点击右上角小三角打开portlet菜单,点击个性化,即进入编辑模式,输入用户名密码然后保存。
此时页面转往视图模式,显示刚才设置的用户名和密码值。
如在个性化设置中点击取消,则所做改动无效,直接转回视图模式。
至此,第一个Portlet示例就开发完成了。
读者可以试着实现在配置模式中完成相同功能。
累了,去
读意优休息一下下,QQ空间,美文,非主流,网络日记,搞笑短信,祝福短信,热门短信,有意思啊
分享到:
相关推荐
【在 RAD7 中开发 JSR168 Portlet】是一个关于使用IBM Rational Application Developer (RAD) 7.0.0.3版本开发遵循JSR168标准的portlet的教程。JSR168(Java Portlet API 1.0)是Java Community Process发布的一个...
Struts2 JSR168 Portlet的开发是构建在Java Portlet规范(JSR168)基础上,结合流行的MVC框架Struts2来创建适用于企业级门户平台的应用组件。这种开发方式允许开发者利用Struts2的强大功能,如Action、Interceptor、...
portlet开发样例主要涵盖两大部分:portlet的类名规范以及使用RAD7开发JSR168portlet的过程。本文将详细阐述这两个方面的内容。 首先,我们来看portlet的类名规范。类名是portlet开发中的一个重要组成部分,它需要...
综上所述,这个压缩包中的内容可能包含一个使用RAD 7开发的基于JSR 168的portlet示例,以及详细说明如何在RAD环境中创建和部署Web服务的文档。这些技术都是Java企业级开发中的关键组成部分,对于理解和实践企业级...
JSR168(Java Portlet Specification 1.0)是Java社区进程发布的一项标准,为portlet的开发提供了规范。本篇文章将深入探讨JSR168 portlet的开发以及IBM提供的portlet开发实践。 一、JSR168简介 JSR168是Java ...
在本文中,我们将深入探讨如何使用Spring MVC Portlet 3.0框架开发针对IBM WebSphere Portal的应用。Spring MVC Portlet是Spring Framework的一部分,它提供了一种优雅的方式来构建portlet应用程序,而IBM WebSphere...
- **MVC 架构**:书中详细介绍了如何在 Portlet 开发中应用 MVC 架构,并提供了具体的示例代码。 - **Portlet MVC 架构**:Portlet MVC 架构是针对 Portlet 的 MVC 特殊实现,本书中提供了详细的说明和实例。 - **...
- 通过portlet开发,可以将各种业务逻辑和用户界面集成到门户中,这需要对JSR168或JSR286标准有深入理解。 - 为了适应企业需求,可能还需要自定义主题、布局和工作流程。 6. **包括的文件**: - "was"可能是指...
特别是,在安装过程中有一个关键步骤需要特别注意,即确保选中Portlet开发支持的相关选项,否则将无法进行Portlet开发。 #### Portlet开发步骤 - **传统开发流程**:传统上,Portlet开发涉及多个步骤,包括编写...
文档可能包含使用IBM Rational Application Developer (RAD)或其他IDE进行portlet开发的步骤,以及如何利用Portlet Developer Toolkit (PDT)进行快速开发。 三、portlet生命周期管理 详细说明portlet的开发、测试、...
3. **开发环境**:开发Websphere Portal应用通常使用IBM RAD(Rational Application Developer)或Eclipse IDE,配合Websphere Portlet Factory或直接编写portlet代码(Java或JSF)。 4. **portlet开发**:portlet...
【Java在企业级开发中的应用】 毛新生,作为IBM中国开发中心的CTO,在QCon 2009北京全球企业开发大会上分享了关于Java在企业级开发中的重要性和应用。他的演讲深入探讨了Java如何在企业软件开发中扮演关键角色,并且...