跳转到主要内容

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

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

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

  • 关闭 [x]

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

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

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

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

  • 关闭 [x]

在 Lotus Domino Designer 中利用 XPages 的威力

如何让 Domino 应用程序支持 Web 2.0

Chris Toohey, 首席解决方案架构师, Clearframe
作为 DominoGuru.com(这是一个以 Lotus Notes/Domino 为主题的“技巧与提示”网站和博客)大家熟悉的开发人员和网络管理员,Chris Toohey 是 Clearframe 的首席解决方案架构师,专长是将 IBM Lotus Notes/Domino 与其他企业级解决方案集成。自从 1998 年进入 IT 行业以来,Chris 以其不同寻常的方法、前卫的思想,以及独到的分析并用标新立异的解决方案解决特定的问题,为自己赢得了专家的称谓,同时赢得了大量忠实的客户。

简介:  XPages 是 Domino Web 开发人员的技术工具箱中最近新增的一项技术,可以说是到目前为止最强大、最革命性的一项技术。利用 XPages 可以实现以前认为在 Domino 应用程序开发环境中无法实现的功能。有了 XPages,可以很容易地在现有应用程序中创建 Web 2.0 用户体验。为了证实 XPages 的威力,本教程向大家介绍如何让个人地址簿 Domino 应用程序模板支持 Web 2.0。

发布日期:  2009 年 3 月 24 日
级别: 中级

访问情况 : 18225 次浏览
评论: 

构建一个 View 类型的 XPage

我们首先从个人地址簿模板取出联系人。本节创建第一个 XPage,用于显示个人地址簿应用程序中 People 视图的内容。

第一个 XPage

本教程的构建部分开始于创建一个新的 XPage,这会打开图 1 所示的 New XPage 窗口。这个 XPage 用于显示个人地址簿应用程序中的联系人,带有各种 Web 2.0 友好的控件和功能。应用程序开发中的第一个程序通常命名为“Hello World”,但是这里的第一个 XPage 命名为“Contacts”,原因有二:

  1. 不是作为例子来开发。而是有一个预定的需求:让现有的、可以工作的、功能完善的 Domino 应用程序支持 Web 2.0。
  2. 您很快就会注意到,针对 XPages 存在着一些命名方案的限制,比如说不能让 XPage 的名称中包含空格,如图 1 所示。

图 1.New XPage 窗口
New XPage 窗口

在 New XPage 窗口单击 OK,就会在其 Design 视图中出现一个空白 XPage。

大多数所见即所得的内容编辑器,尤其是 HTML 编辑器,都向开发人员提供所见即所得编辑器内容的源代码视图。XPages 也提供该选项,让开发人员可以在设计视图和源代码视图之间任意切换(参见图 2)。


图 2. Design 和 Source 面板切换
Design 和 Source 面板切换

对于本教程来说,不会花太多的时间在 Source 视图中,相反,将在 Rational Application Developer 友好的 Design 视图中完成所有设计更改。但是对于那些感兴趣的人来说,很容易切换到 Source 视图,查看已经为空白 XPage 生成的标签(参见图 3)。


图 3. Source 视图中为空白 XPage 生成的标签
Source 视图中为空白 XPage 生成的标签

可以看到,XPages 的 design 选项卡生成定制模式 XML,JSF 最终用其来在网络上呈现 XPages。


创建数据源

如果您的 Domino 应用程序具有一个视图或表单设计元素,您就差不多快有自己的数据源了。碰巧,个人地址簿模板具有几个视图和表单可供选择,所以下面我们来定义数据源。

  1. 在默认透视图中(Domino Designer in Eclipse 称之为布局),数据源可通过 Domino Designer on Eclipse 右侧栏中的 Data 选项卡(Data 调板)来定义(参见图 4)。

    图 4. 通过 Data 选项卡定义数据源
    通过 Data 选项卡定义数据源

  2. 一旦进入 Data 调板,就可以从所提供的下拉列表中选择一种数据源;但是因为这是第一个 XPage,所以需要定义第一个数据源。为此,从图 5所示的下拉菜单选择 Define Data Source


    图 5. 从下拉菜单定义数据源
    从下拉菜单定义数据源

  3. 这会打开 Define Data Source 窗口。在 Data source 列表中可以看到两个选项:Domino View 和 Domino Document。本教程中将要定义几个不同的数据源,但是对于本节,选择 Domino View

    图 6. 打开 define data source 窗口
    打开 define data source 窗口

  4. 一旦从 Define Data Source 窗口选择了 Domino View,窗口就更改为 Domino 视图特定的 data source 窗口,如图 7 所示。在这里,可以从所选的 Domino 应用程序(对于本教程,仍然保持为个人地址簿应用程序)选择一个视图。


    图 7. Domino 视图特定的 data source 窗口
    Domino 视图特定的 data source 窗口

  5. 定义好 Domino 视图设计元素之后,当然就可以重命名数据源了,但是对于本教程来说,保留默认的名称。因此,数据源名称保持为“people”。选择 OK。Define Data Source 窗口处理和创建在 Data 调板中指定的数据源,按照字母顺序列出每个数据源对象(参见图 8)。


    图 8. 按照字母顺序列出的数据源对象
    按照字母顺序列出的数据源对象


利用数据源创建 XPage viewPanels

既然有了自己的 People 数据源,下面就开始填充 contacts XPage。

  1. 选择数据源对象(Windows OS 上使用 Ctrl 键选择多个对象),并将它们拖放到 XPage 上(参见图 9)。


    图 9. 将数据源对象拖放到 XPage 上
    将数据源对象拖放到 XPage 上

  2. 选择以下数据源对象,对应于个人地址簿应用程序的 People 视图:
    • Name
    • Email
    • Phone
    • Company
    • Modified
    • Category
  3. 既然已经将数据源对象拖放到 contacts XPage,就可以看到,每个数据源对象都在类似于 Domino 视图的 XPages viewPanel 中创建了一列(一个 XPages viewColumn)。修改这个 viewPanel,以达到所需的结果(参见图 10)。


    图 10. 未排序的数据源对象
    每个数据源对象都创建了一列


    注意,数据源对象 viewColumns 保持按照字母顺序排序。为了匹配个人地址簿应用程序的 People 视图,重新排列这些 viewColumns,以便它们与 People 视图的顺序相符。
  4. 切换到 XPage Source 视图,因为 XPage viewPanel 和 viewColumns 很容易通过其 XML 结构修改,并且您可以立即重命名元素 ID。使用 Outline 调板(位于默认 Domino Designer in Eclipse 透视图的左下部分)来拖放,并通过树状对象和元素结构来重新排列 viewColumns(参见图 11)。


    图 11. Outline 面板和对象布置
    Outline 面板和对象布置

重新排列这些 viewColumns 之后,马上就可以看出 contacts XPage 与基于 People 视图的 viewPanel 之间的类似之处(参见图 12)。


图 12. 排序后的数据源对象
排序后的数据源对象

注意:如果希望保持表样结构,那么重新排列时既选中列标题,又选中列。

为了重复个人地址簿应用程序用户体验,修改特定的 XPage viewPanel 属性和特性。


XPage viewPanel 属性

XPage viewPanel 属性可用于设置包含在呈现集合中的 NotesDocuments(或 Domino Application 数据记录)的最大数量。viewPanel 属性也指定 XPage 数据源,定义 viewPager 位置,以及控制其他 viewPanel 设置。本教程将介绍如何修改几个 viewPanel 属性。图 13 展示了 viewPanel 属性,底部是 Maximum rows per page 首选项。


图 13. viewPanel 属性 —— maximum rows per page
viewPanel 属性 —— maximum rows per page

Maximum rows per page 值跟很多其他 XPage 属性值一样,可以设置为静态值或计算值,但是本教程将 maximum rows per page 值设置为 10。


联系人预览

既然已经在 viewPanel 中重新排列了 viewColumns 以匹配个人地址簿应用程序中的 People 视图,并且更新了 viewPanel 属性,下面就来看呈现在 Web 浏览器中的 People 视图,如图 14 所示。


图 14. 标准的 People 视图预览
标准的 People 视图预览

毫无疑问,视图的功能正常,但是默认的 Domino Design Element Web 浏览器客户端呈现达不到大多数用户目前期待的功能和样式方面的体验。图 15 显示了 contacts XPage 到目前为止的样子。


图 15. Contacts XPage 预览
Contacts XPage 预览

鉴于我们除了拖放了一些数据源对象到 XPage 上,其他什么也没做,该视图看起来已经够好的了,是吧?但是问题是,尽管可以看到 People 视图的内容,却不能对它们进行任何操作。我们需要在第一个 viewColumn 内容中创建一个链接,用于打开给定的 NotesDocument,这是下一节要介绍的任务。


定义 viewColumn 动作和高级属性

正如前面提到的,目前 contacts XPage 的 viewColumn 还不允许打开 NotesDocument。考虑将 Name viewColumn 的内容更改为一个可点击的链接,点击它将会以只读模式打开给定的 NotesDocument。从 Name viewColumn 的视图列属性中选择几个配置选项。

viewColumn 属性位于默认 Domino Designer on Eclipse 透视图底部的属性区域,并在 viewColumn 突出显示时变得可用。


图 16. viewColumn 属性 —— column display properties
viewColumn 属性 —— column cisplay properties

要控制允许您为集合中特定项打开 NotesDocument 的 viewColumn 属性,选中 Show values in this column as links。一旦选中,就可以指定 NotesDocument 的编辑状态,选择当通过该 viewColumn 中生成的链接打开时 NotesDocuments 是处于编辑模式还是阅读模式。视图列属性还允许您指定静态和计算风格的 viewColumn 信息、内容类型声明以及其他此类 viewColumn 属性。


XPage pager

XPages 中的 pager 是用于数据源集合导航的控件。这些 pager 控件允许特定的 viewPanel 导航、基于 Ajax 的集合导航以及自定义的 pager 类型。对于这里的 contacts XPage,我们将要配置 top 和 bottom 两个 pager,都使用一个有助于集合分页的预设主题,并支持基于 Ajax 的集合导航。

在 viewPanel 中选择 top pager,将显示 pager 首选项,位于默认透视图中 Domino Designer on Eclipse 客户端的底部。选择 Sample 4 作为 pager 样式,选中 Partial Refresh,这将允许您进行基于 AJAX 的集合导航、设置对齐,以及指定该 pager 将刷新 viewPanel(即 viewPanel1)的内容。


图 17. XPage pager 属性
XPage pager 属性

设置好 pager 首选项之后,Design viewPanel 就会显示一个示例 pager(参见图 18)。


图 18. XPage pager Design 面板预览
XPage pager design 面板预览

已经向 viewPanel 的页眉和页脚添加了 pager,下面我们来看一下 Contacts XPage,如图 19 所示。


图 19. XPage pager 浏览器预览
XPage pager 浏览器预览

第一个 XPage 错误

如果现在点击 Name viewColumn(前面已经指定为打开 NotesDocuments 的链接),那么将会得到如图 20 所示的错误消息。


图 20. XPage 错误示例
XPage 错误示例

viewColumn 链接的 URL 语法如下:http://server/pnab.nsf/$$OpenDominoDocument.xsp?databaseName=pnab.nsf& documentId=9D6&action=editDocument

尽管这个错误消息可能会让您认为存在一个与 pnab.nsf 有关的问题(这是示例个人地址簿应用程序的 OS 级别的名称),但是实际并不是这样的。将重点放在错误消息的第一行。为了阐述产生这个错误并导致您不能打开所请求的 NotesDocument 的实际问题,将 URL 更改为:http://server/pnab.nsf/$$OpenDominoDocument.xsp?documentId=9D6&action=editDocument

在上面的 URL 中,去掉了查询字符串中的 databaseName 属性和值。

这个修改后的请求 URL 产生的错误消息告诉您,JSF(XPage 呈现引擎)不能定位 XPage 以呈现 NotesDocument(参见图 21)。


图 21. XPage 错误示例 —— 修改后的 URL 命令
XPage 错误示例 —— 修改后的 URL 命令

要解决这个问题,只需创建一个 XPage,用来呈现 NotesDocument。此时一定要考虑到现在是处于 XPages 环境中,而不是在标准的 Domino Design Element 环境中。因为只定义了一个 View XPage,所以没有 NotesDocument XPage 来显示所请求的 NotesDocument。下一节就来创建这个 NotesDocument XPage。

2 页,共 9 | 前一页 | 后一页

评论



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=377993
TutorialTitle=在 Lotus Domino Designer 中利用 XPages 的威力
publish-date=03242009
author1-email=ctoohey_@dominoguru.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。