在 IBM Lotus Quickr 中处理组件,第 3 部分:将组件公开为定制的 Atom 提要

本文为共三部分的系列文章的第三部分,演示了如何将 IBM® Lotus® Quickr™ 内容(项)公开为定制的 Atom 提要。新的 Atom 提要可用于跨用户所属的所有 teamplace 从任务或声明等组件获取 Lotus Quickr 内容。这些内容还可以根据组件的任意选项字段进行过滤,比如任务组件的 priority 字段,或声明组件的 type 字段。

Amit Pareek, 系统软件工程师, IBM

Amit Pareek 是 IBM 印度软件实验室 Services 团队的系统软件工程师。他的专业领域包括 J2EE 和 Content Management 解决方案,并且从事过 IBM Lotus Quickr 定制工作。他与 Lotus Quickr 开发团队进行沟通,并与架构师一起从事产品定制工作。



Yogesh Karekar, IT 专家, IBM

Yogesh Karekar 是 IBM 印度软件实验室的 IT 专家。他在各种门户和内容管理产品方面具有丰富的经验。他目前在软件实验室从事 Lab Services 决策的工作。他的专长包括 IBM Websphere Portal、IBM Lotus Web Content Management 和 IBM Lotus Quickr,并参与各种面向客户的活动。



2009 年 7 月 03 日

要阅读本篇文章,您应当对 Lotus Quickr services for WebSphere® Portal V8.1、Java™ Platform、Enterprise Edition (Java EE) 开发、IBM Lotus Web Content Management API 和 Struts v1.2 有较好的了解。

简介

Lotus Quickr services for WebSphere Portal(后文统一简称为 Lotus Quickr)提供了各种可以创建、管理、更新、搜索和删除 Lotus Quickr 内容的服务。这些内容基于 Representational State Transfer (REST) 架构并支持 Atom Syndication Format 和 Atom Publishing Protocol (APP)。这种支持允许 Lotus Quickr 将其内容公开为 Atom 提要。

本文向您展示了如何编写一个新的 Atom 提要以从 Lotus Quickr 组件获取内容,然后将其部署到 Lotus Quickr 中。该提要允许用户使用查询参数指定过滤内容的条件。本文还介绍了这项技术的潜在用途。虽然本文下载小节提供了应用程序的样例代码,但是您可以进一步定制这个提要。


开始之前

要创建一个新 Atom 提要,您需要以管理员的身份访问 Lotus Quickr 服务器。Lotus Quickr 附带了许多 Atom 提要。本节将介绍如何为 Lotus Quickr 编写一个定制提要以及如何对它进行部署。整个应用程序有几百行代码,但是我们只要求您编写最重要的组件;其余部分本文已经给出。步骤如下:

  1. 扩展 Struts 动作类以处理 HTTP 请求
  2. 实现 NewFeedWCMResolver.java 文件,该文件将处理请求并创建 Atom 文档
  3. 修改 Struts 配置以注册新的动作
  4. 将代码打包并部署到 Lotus Quickr

设置

本文假设您使用 IBM Rational® Application Developer V7 开发 Web 应用程序,但是您可以使用任何应用程序编辑和部署 Web 应用程序。本次练习的所有内容不特定于任何工具。您需要安装 Lotus Quickr 8.1,并在其中同时配置 WebSphere Portal 和 Rational Application Developer V7 作为 WebSphere Portal V6.0 运行时环境。


配置项目和导入文件

编写新 Atom 提要的第一步是设置项目。您需要创建一个 Web 项目,该项目稍后将被导出为 EAR 文件。本节将展示 IBM Rational® Application Developer 项目的配置。现在执行以下步骤:

  1. 打开 Rational Application Developer。
  2. 选择 File - New - Other,然后在 Select a wizard 步骤中查找并选择 Dynamic Web Project。单击 Next。

    注意:如果没有看到 Portal 区段,则选择 Show All Wizards 选项。

  3. 对于 Dynamic Web Project 步骤,输入以下信息并单击 Next。

    • 在 Project name 字段中,输入 NewAtomFeed。
    • 在 Target Rutime 字段中,选择 WebSphere Portal v6.0。
    • 在 Configurations 字段中,选择 <custom>。
    • 选择 Add project to an EAR 选项。
    • 在 EAR Project name 字段中,输入 NewAtomFeedEAR。
  4. 对于 Project Facets 步骤,选择以下两个项目 facet:

    • Dynamic Web module (version 2.4)
    • Java (version 1.4)

    注意:确保这些项目 facet 的版本和这里提到的版本完全一致。

  5. 单击 Finish 以保存修改。
  6. 如果显示消息 “This type of project associated with the web perspective”,则单击 Yes。

您应该看到在当前工作空间中创建了如图 1 所示的两个项目。

图 1. Project Explorer 显示的 NewAtomFeed 项目
Project Explorer 显示的 NewAtomFeed 项目

设置企业应用程序 EAR 文件

创建 Rational Application Developer 项目后,下一步是在开始编写代码前完成全部设置。Lotus Quickr 附带了一个名为 ilwwcm-atompublishing.war 的 Web 应用程序,该应用程序包含无需修改就可立即使用的 Atom 内容提要。您要创建此 Web 应用程序的一个副本,以便自动引入大部分配置。要完成设置,您必须修改 Struts 配置和 EAR 文件的部署描述符。

遵循以下步骤:

  1. 右键单击 Project Explorer 选项卡中的 NewAtomFeed 项目并选择 Import - Import。
  2. 在显示的 Import 页面中,选择 General - File System 并单击 Next。
  3. 在显示的 Import 页面中,选择 ilwwcm-atompublishing.war 文件夹。下面是位于 Lotus Quickr 安装根目录内部的 ilwwcm-atompublishing.war 文件夹的路径:
    <quickr_root>/wp_profile/installedApps/<node_name>
    /wcm.ear/ilwwcm-atompublishing.war
  4. 在字段 Select a folder to import into 中,输入 “NewAtomFeed/Webcontent”,如图 2 所示。单击 OK 继续。

    注意:如果显示 Overwrite 页面,则单击 Yes to All。

    图 2. 在 WebContent 文件夹中导入 ilwwcm-atompublishing.war 文件
    在 WebContent 文件夹中导入 ilwwcm-atompublishing.war 文件
  5. 在显示的页面中,保持默认值不变,并单击 Finish 保存修改。
  6. 选择 Windows - Preferences,然后在显示的 Preferences 窗口中选择 Java - Compiler。将 Compiler compliance level 字段的值修改为 1.4,如图 3 所示。

    图 3. 设置 Java 编译器级别参数
    设置 Java 编译器级别参数
  7. 在 Project Explorer 选项卡中,右键单击 NewAtomFeed 项目并选择 Properties,将类库添加到构建路径。
  8. 在 Properties 向导中,选择 Java Build Path 选项并选择 Libraries 选项卡,如图 4 所示。

    图 4. Java Build Path 向导
    Java Build Path 向导
  9. 单击 Add External JARs 添加以下文件,如图 5 所示:
    • <quickr_root>/PortalServer/wcm/shared/app/ilwwcm-commons-properties.jar
    • <quickr_root>/PortalServer/wcm/shared/app/ilwwcm-commons-utils.jar
    • <<quickr_root>/PortalServer/wcm/shared/app/ilwwcm-nls-filter.jar
    • <quickr_root>/PortalServer/wcm/shared/app/ilwwcm-server.jar
    图 5. NewAtomFeed 项目的 Java Build Path 向导
    NewAtomFeed 项目的 Java Build Path 向导
  10. 单击 OK 保存更改。
  11. 打开 Deployment Descriptor,然后打开 application.xml,或直接打开项目 NewAtomFeedEAR 的 application.xml 文件。参见图 6。

    图 6. NewAtomFeedEAR 的 Project explorer 视图
    NewAtomFeedEAR 的 Project explorer 视图
  12. 转到 Module 视图。
  13. 选择 NewAtomFeed 模块填充 Context root 字段。在 Context root 字段中输入 “/lotus/customfeed”,如图 7 所示。

    图 7. NewAtomFeed 模块的上下文根设置
    NewAtomFeed 模块的上下文根设置
  14. 然后通过单击底部的 Security 选项卡转到 Security 视图。
  15. 在 Security Roles 区段中,添加一个名为 All Role 的安全角色,其描述为 All Authenticated users in the enterprise。或者单击 Source 选项卡,然后使用清单 1 所示的 XML 片段手动添加一个安全角色,这样也可以进入到源视图。单击 Finish 继续。
清单 1. 添加安全角色
 <security-role > 
	 <description>All Authenticated users in the enterprise.</description> 
	 <role-name>All Role</role-name> 
 </security-role>
  1. 保存 application.xml 文件。
  2. 另外,可以选择从路径为 <RAD_Workspace _root>/NewAtomFeed/WebContent/WEB-INF/lib/ilwwcm-atompublishing.war 的 Web 应用程序库文件夹删除 ilwwcm-atompublishing.jar 文件。

    注意:该步骤是可选的。可以选择在 Web 应用程序中保存 JAR 文件。


为新提要创建自己的类

在前面小节中导入到项目的 Web 应用程序使用了 Struts 框架。因此,可以扩展 Struts 框架以创建新提要。您需要创建一个 servlet,它为这个新 Web 应用程序处理所有针对 Atom 提要的请求。然后创建自己的 action 类,它将扩展基 Struts action 类 org.apache.struts.action.Action。

新的 action 类使用一个 resolver 类处理请求并构建 Atom 提要。您还需要使用一个实用类在提要中创建相应的 URL。

遵循以下步骤:

  1. 选择 Windows - Open Perspective - Web 转到 Web 透视图。
  2. 在 NewAtomFeed 项目的 Project Explorer 选项卡中,右键单击 Java Resources: src 创建一个新包,然后选择 New - Package。
  3. 在 Name 字段中输入 “com.ibm.test.wcm.app.atom.servlet”。单击 Finish。
  4. 通过右键单击包 com.ibm.test.wcm.app.atom.servlet 创建一个新类,然后选择 New - Class。
  5. 在 New Java Class 向导中,执行以下步骤:

    • 在 Name 字段输入 AuthServlet。
    • 在 Superclass 字段输入 org.apache.struts.action.ActionServlet。
    • 选择 Constructors from superclass and Inherit abstract methods 字段,如图 8 所示。
    图 8. AuthServlet 类设置
    AuthServlet 类设置
  6. 单击 Finish 以创建类。
  7. 在 NewAtomFeed 项目中右键单击 Java Resources: src 并选择 New - Package,创建一个新包。
  8. 在 Name 字段中输入 com.ibm.test.wcm.app.atom.util 并单击 Finish。
  9. 右键单击 com.ibm.test.wcm.app.atom.util 包并选择 New - Class,创建一个新类。
  10. 在 New Java Class 向导中,执行以下操作:

    • 在 Name 字段中输入 AtomURLBuilder。
    • 在 Superclass 字段中输入 java.lang.Object。
    • 选择 Constructors from superclass and Inherit abstract methods 字段,如图 9 所示。
    图 9. AtomURLBuilder 类设置
    AtomURLBuilder 类设置
  11. 单击 Finish 以创建类。
  12. 在 NewAtomFeed 项目中右键单击 Java Resources: src 并选择 New - Package,创建一个新包。
  13. 在 Name 字段中输入 com.ibm.test.wcm.app.atom.actions 并单击 Finish。
  14. 右键单击 com.ibm.test.wcm.app.atom.actions 包并选择 New - Class,创建一个新类。
  15. 在 New Java Class 向导中执行以下操作:

    • 在 Name 字段中输入 NewFeedAction。
    • 在 Superclass 字段中输入 org.apache.struts.action.Action。
    • 选择 Constructors from superclass and Inherit abstract methods 字段,如图 10 所示。
    图 10. NewFeedAction 类设置
    NewFeedAction 类设置
  16. 单击 Finish 以创建类。
  17. 在 NewAtomFeed 项目中右键单击 Java Resources: src 并选择 New - Package,创建一个新包。
  18. 在 Name 字段中输入 com.ibm.test.wcm.app.atom.resolver 并单击 Finish。
  19. 右键单击 com.ibm.test.wcm.app.atom.resolver 包并选择 New - Class,创建一个新类。
  20. 在 New Java Class 向导中执行以下操作:

    • 在 Name 字段中输入 NewFeedWCMResolver。
    • 在 Superclass 字段中输入 java.lang.Object。
    • 选择 Constructors from superclass and Inherit abstract methods 字段,如图 11 所示。
    图 11. NewFeedWCMResolver 类设置
    NewFeedWCMResolver 类设置
  21. 单击 Finish 以创建类。

完成剩余代码

现在 Web 应用程序已经完成设置,可以开始编写 Atom 提要的内部类了。您已经为此创建了四个 Java 类。

servlet 类是处理 Atom 提要请求的起始点。顾名思义,AuthServlet 类的目的是在将请求重定向到 action 类之前确保用户通过身份验证。servlet 类还确保在请求到达 action 类时,它通过一个受保护的 servlet 路径(/myatom)。

AuthServlet 是为 NewAtomFeed Web 应用程序创建的所有 Atom 提要的通用身份验证 servlet。AuthServlet 类扩展 org.apache.struts.action.ActionServlet 类,并且覆盖 process() 方法。process() 方法用于执行标准的请求处理并生成相应的响应。参见清单 2。

清单 2. Action servlet 代码片段
 public ActionForward execute(ActionMapping mapping, ActionForm aform, 
 HttpServletRequest request, HttpServletResponse response) throws Exception 
 { 
    ActionForward forward = null; 
    response.setHeader("Server", "Teamspace Web Content 1.0"); 
    String httpMethod = request.getMethod(); 
    if(httpMethod.equalsIgnoreCase("GET")) 
    { 
	 m_isHead = false; 
	 forward = get(mapping, aform, request, response); 
    } else 
    if(httpMethod.equalsIgnoreCase("HEAD")) 
    { 
	 m_isHead = true; 
	 forward = get(mapping, aform, request, response); 
    } else 
    { 
	 response.setStatus(405); 
	 response.setHeader("Allow", "GET, HEAD"); 
	 return null; 
    } 
    return forward; 
 }

action 类注册了 Struts 配置,因此在获得由 AuthServlet 重定向的请求之后,将调用 action 类。将调用重写后的 execute() 方法来处理请求,它继承自超类 org.apache.struts.action.Action。

在 execute() 方法中,首先决定请求的方法。根据 APP 规范,只有 Get 和 Head 请求被认为是有效的。如果进入的请求是 Get 或 Head,那么将设置响应对象的头部(header),然后将此请求转发给 get() 方法。get() 方法随后处理此请求。参见清单 3。

清单 3. execute() 方法的代码
 public ActionForward execute(ActionMapping mapping, ActionForm aform, 
 HttpServletRequest request, HttpServletResponse response) throws Exception 
 { 
    ActionForward forward = null; 
    response.setHeader("Server", "Teamspace Web Content 1.0"); 
    String httpMethod = request.getMethod(); 
    if(httpMethod.equalsIgnoreCase("GET")) 
    { 
	 m_isHead = false; 
	 forward = get(mapping, aform, request, response); 
    } else 
    if(httpMethod.equalsIgnoreCase("HEAD")) 
    { 
	 m_isHead = true; 
	 forward = get(mapping, aform, request, response); 
    } else 
    { 
	 response.setStatus(405); 
	 response.setHeader("Allow", "GET, HEAD"); 
	 return null; 
    } 
    return forward; 
 }

在 get() 方法中,首先从被作为查询参数传递的请求中提取出所有有用信息。然后为通过身份验证的用户创建一个 Lotus Web Content Management 库的实例。在如清单 4 所示的样例代码中,您还使用了一个实用类 com.ibm.test.wcm.app.atom.util.AtomURLBuilder,它提供帮助您构建指向 Lotus Quickr 服务器的 URL 的方法。所有这些数据(即查询参数、Lotus Web Content Management 库实例和 AtomURLBuilder 实例)随后被传递到在其中构建 Atom 文档的 NewFeedWCMResolver 类的 getFeed() 方法。由 NewFeedWCMResolver 类返回的 Atom 文档随后作为响应发回给浏览器。参见清单 4。

清单 4. get() 方法的代码
 public ActionForward get(ActionMapping actionMapping, ActionForm actionForm, 
 HttpServletRequest request, HttpServletResponse response) throws Exception 
 { 
	 /* 
	 * 	 ..... fetch query parameters data .... 
	 */ 

	 /* 
	 * 	 ..... create instance of WCM repository .... 
	 */ 
	
	 /* 
	 * 	 ..... create instance of AtomURLBuilder  utility .... 
	 */ 

	 /* 
	 * 	 ..... pass all the data captured from query params and the instaces of 
	 * 	 WCM repository and AtomURLBuilder  utility to  getFeed method of 
 * 	 NewFeedWCMResolver class  .... 
	 */ 
	
	 /* 
	 * 	 ..... send the atom document as response back to the browser 
	 */ 
 }

NewFeedWCMResolver 类的 getFeed() 方法首先对 Lotus Web Content Management 发出一个查询,以从通过身份验证的用户所属的 teamplace 中获取所选组件类型的内容。Atom 文档首先从头部开始构建,然后再构建条目。在将条目添加到 Atom 文档时执行过滤。该 Atom 文档随后返回给 NewFeedAction 类。参见清单 5。

注意:在创建 atom 字段时,特别需要注意在提要中填充的值(数据)。Atom 提要的某些元素不能接受空格等字符。有关 Atom Publishing Protocol 的更多信息,请参见本文的参考资料小节。

清单 5. getFeed() 方法的代码
 public Feed getFeed(Workspace p_workspace, AtomURLBuilder p_urlBuilder, 
 Locale locale, String p_atName, String p_optionAttr, 
 String p_optionVal, HttpServletRequest p_request) throws AuthorizationException, 
 InvalidIdException, AtomException 
 { 
	 /* 
	 * 	 ..... query WCM for fetching content of the selected 
	 component type for the authenticated user .... 
	 */ 

	 /* 
	 * 	 ..... add header elements to the Atom document  .... 
	 */ 
	
	 /* 
	 * 	 ..... add header elements to the Atom document  .... 
	 */ 

	 /* 
	 * 	 ..... pass all the data captured from query params and the instaces of 
	 * 	 ..... WCM repository and AtomURLBuilder  utility to  getFeed method of 
	 NewFeedWCMResolver class .... 
	 */ 
	
	 /* 
	 * 	 ..... return the atom document back to the NewFeedAction class 
	 */ 
 }

注意:本文的下载小节以文件形式提供这四个类的源代码。这些文件的名称分别为:

  • AuthServlet.java
  • NewFeedAction.java
  • NewFeedWCMResolver.java
  • AtomURLBuilder.java

使用 Web 部署描述符注册新的 servlet 类

需要使用 Web 部署描述符注册新的 servlet 类。由于您已经从现有 Web 应用程序创建了 Web 应用程序,因此这个 servlet 在 Web 部署描述符中已经存在相应的条目。您只需要修改类属性,使它指向新的 servlet 类 AuthServlet。

遵循以下步骤:

  1. 打开 Web Deployment Descriptor,然后打开 web.xml,或直接打开项目 NewAtomFeed 的 web.xml 文件。
  2. 转到 Servlets 视图。
  3. 选择 WCM Atom Publishing servlet。
  4. 单击 Servlet class 字段旁边的 Browse 按钮,修改此属性的值。参见图 12。

    图 12. web.xml 文件的 Servlets 视图
    web.xml 文件的 Servlets 视图
  5. 在 Select Servlet 或 JSP 向导中,执行以下操作:

    • 在 Choose a servlet 字段中输入 AuthServlet。
    • 在 com.ibm.test.wcm.app.atom.servlet 包中选择 servlet 类 AuthServlet,以修改这个 servlet 的 Servlet Class 属性。
  6. 保存 web.xml 文件。

使用 Struts 配置注册新的 action 类

您创建的新 action 类需要注册到 Struts 配置。Struts 配置在 struts-config-atom.xml 文件中定义。action 类与 URL 路径的映射被注册到 Struts 配置中,这样所有具有匹配路径的请求都被发送到与路径相映射的 action 类,然后再进行处理。

遵循以下步骤:

  1. 在 NewAtomFeed 项目中打开 struts-config-atom.xml 文件。
  2. 从 action-mappings 元素中删除所有三个 action 映射。为新提要添加一个新的 action 映射,如清单 6 所示。
清单 6. 新提要的 Action 映射
 <action path="/newfeed/*" 
 type="com.ibm.test.wcm.app.atom.actions.NewFeedAction" />
  1. 保存 struts-config-atom.xml 文件。

部署新的 Atom 提要 EAR 文件

现在应用程序已经为部署做好准备,必须执行一个完整的构建并将应用程序导出为一个 EAR 文件。完成这些操作后,使用 WebSphere Application Server 控制台将导出的 EAR 文件部署到 WebSphere_Portal 应用服务器。注意,在使用之前,您必须显式地启动部署后的应用程序。类似地,如果因为其他原因需要重新部署 EAR 文件,必须重新启动应用程序以使修改生效。

遵循以下步骤:

  1. 右键单击 NewAtomFeedEAR 项目并选择 Export - EAR 文件。
  2. 在 EAR 应用程序中 ??? 择 NewAtomFeedEAR 项目,然后在 Export 向导的 Destination 字段中输入 EAR 目标路径。参见图 13。

    图 13. 将应用程序作为 ear 文件导出
    将应用程序作为 ear 文件导出
  3. 单击 Finish,根据选择的路径将项目导出为 NewAtomFeed.ear。
  4. 登录到 WebSphere Application Server 管理控制台。
  5. 选择 Application - Enterprise Applications,如图 14 所示。

    图 14. WebSphere Application Server 管理控制台
    WebSphere Application Server 管理控制台
  6. 显示 Preparing for the application installation 页面;该页面就是您安装最新创建的 EAR 文件的位置。单击 Next。
  7. 将显示如图 15 所示的新页面,您可以在其中设置默认构建和映射。执行以下操作:

    • 选择 Generate Default Bindings 字段
    • 选择 Override existing bindings 字段
    • 现在 Use default virtual host name for Web modules 字段
    • 单击 Next 继续。
    图 15. 默认构建设置
    默认构建设置
  8. 将显示页面 Step 1, Select installation options。不要对默认设置作任何修改,单击 Next 继续。
  9. 将显示页面 Step 2, Map modules to servers。执行如图 6 所示的操作:

    • 在 Clusters and Servers 区段中选择第二个字段 WebSphere: cell=ykare, node=<node_name>,server=Websphere_Portal。
    • 选择 Select 标题下的复选框。
    • 单击 Apply。
    • 单击 Next 继续。
    图 16. 将模块映射到服务器
    将模块映射到服务器
  10. 将显示向导的 Step 3, Map virtual hosts for Web modules 页面。保留默认设置,并单击 Next 继续。
  11. 将显示向导的 Step 4, Map security roles to users/groups 页面,执行图 7 所示的操作:

    • 选择 All Role 的 All authenticated? 复选框。
    • 单击 Next 继续。
    图 17. 将安全角色映射到用户 / 组
    将安全角色映射到用户 / 组
  12. 将显示安装向导的摘要页面。单击 Finish。
  13. 显示安装摘要页面。单击 Save to Master Configuration 链接,如图 18 所示。

    图 18. 安装摘要页面
    安装摘要页面
  14. 单击 Save 按钮。该操作将把您带回到 Enterprise Application 视图。
  15. 启动已经安装完成的应用程序。

使用新的 Atom 提要

现在您已经部署了新的 Atom 提要,可以使用以下 URL 对其进行测试:

http://<host>:<port>/lotus/customfeed/myatom/newfeed/?atname=<
authoring_template_name>'optionattr=<element_name>
&optionval=<element_value>

announcement personalize 提要的样例 URL 如下所示:

http://<host>:10038/lotus/customfeed/myatom/newfeed/?atname=list_announcement
&optionattr=type'optionval=@nls@special.title@

其中:

  • <host>:主机名或 IP。
  • <port>:端口号(默认值为 10038)。
  • <authoring_template_name>:组件的创作模板的名称。
  • <element_name>:据此执行过滤的元素名。该元素的类型应该为 OptionSelection。
  • <element_value>:执行过滤的参照值。

结束语

本文讨论了如何创建一个新的 Atom 提要来获取 Lotus Quickr 内容。您使用现有的 ilwwcm-atompublishing.war 文件为新提要创建了一个新项目。然后通过修改 application.xml 和 struts-config-atom.xml 文件对应用程序进行配置,使它支持这个新提要。接下来您实现了两个 Java 类 NewFeedAction.java 和 NewFeedWCMResolver.java。最后,您学习了如何部署并测试应用程序。


下载

描述名字大小
AtomURLBuilder.java1.52KB
AuthServlet.java2.45KB
NewFeedAction.java3.74KB
NewFeedWCMResolver.java7.17KB

参考资料

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=406351
ArticleTitle=在 IBM Lotus Quickr 中处理组件,第 3 部分:将组件公开为定制的 Atom 提要
publish-date=07032009