`
buliedian
  • 浏览: 1249014 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

在RAD7中开发JSR168 Portlet (一)

阅读更多
本教程介绍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

    【在 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的开发

    Struts2 JSR168 Portlet的开发是构建在Java Portlet规范(JSR168)基础上,结合流行的MVC框架Struts2来创建适用于企业级门户平台的应用组件。这种开发方式允许开发者利用Struts2的强大功能,如Action、Interceptor、...

    portlet开发样例.docx

    portlet开发样例主要涵盖两大部分:portlet的类名规范以及使用RAD7开发JSR168portlet的过程。本文将详细阐述这两个方面的内容。 首先,我们来看portlet的类名规范。类名是portlet开发中的一个重要组成部分,它需要...

    rad开发webservice的例子

    综上所述,这个压缩包中的内容可能包含一个使用RAD 7开发的基于JSR 168的portlet示例,以及详细说明如何在RAD环境中创建和部署Web服务的文档。这些技术都是Java企业级开发中的关键组成部分,对于理解和实践企业级...

    portlet学习资料

    JSR168(Java Portlet Specification 1.0)是Java社区进程发布的一项标准,为portlet的开发提供了规范。本篇文章将深入探讨JSR168 portlet的开发以及IBM提供的portlet开发实践。 一、JSR168简介 JSR168是Java ...

    使用spring mvc portlet 3.0开发IBM WebSphere Portlet应用

    在本文中,我们将深入探讨如何使用Spring MVC Portlet 3.0框架开发针对IBM WebSphere Portal的应用。Spring MVC Portlet是Spring Framework的一部分,它提供了一种优雅的方式来构建portlet应用程序,而IBM WebSphere...

    IBM Rational Application Developer V6 Portlet Application Development and Portal Tools

    - **MVC 架构**:书中详细介绍了如何在 Portlet 开发中应用 MVC 架构,并提供了具体的示例代码。 - **Portlet MVC 架构**:Portlet MVC 架构是针对 Portlet 的 MVC 特殊实现,本书中提供了详细的说明和实例。 - **...

    在RAD/RSA上安装配置Portal 6.0 和优化性能并减少资源消耗的方法

    - 通过portlet开发,可以将各种业务逻辑和用户界面集成到门户中,这需要对JSR168或JSR286标准有深入理解。 - 为了适应企业需求,可能还需要自定义主题、布局和工作流程。 6. **包括的文件**: - "was"可能是指...

    Portal培訓教材_FromIBM(5)

    特别是,在安装过程中有一个关键步骤需要特别注意,即确保选中Portlet开发支持的相关选项,否则将无法进行Portlet开发。 #### Portlet开发步骤 - **传统开发流程**:传统上,Portlet开发涉及多个步骤,包括编写...

    WebSphere Portal 开发文档

    文档可能包含使用IBM Rational Application Developer (RAD)或其他IDE进行portlet开发的步骤,以及如何利用Portlet Developer Toolkit (PDT)进行快速开发。 三、portlet生命周期管理 详细说明portlet的开发、测试、...

    Websphere Portal 开发教材

    3. **开发环境**:开发Websphere Portal应用通常使用IBM RAD(Rational Application Developer)或Eclipse IDE,配合Websphere Portlet Factory或直接编写portlet代码(Java或JSF)。 4. **portlet开发**:portlet...

    QCon 2009 beijing全球企业开发大会ppt:10.Java在企业级开发中的应用

    【Java在企业级开发中的应用】 毛新生,作为IBM中国开发中心的CTO,在QCon 2009北京全球企业开发大会上分享了关于Java在企业级开发中的重要性和应用。他的演讲深入探讨了Java如何在企业软件开发中扮演关键角色,并且...

Global site tag (gtag.js) - Google Analytics