两种新技术
XPages 和 Themes 是两种新技术,允许 Lotus Domino Web 应用程序开发人员快速、方便地控制 Rapid Application Development (RAD) 项目,同时还允许他们扩展并完全地控制 Web 浏览器客户机呈现的输出。本节将针对本教程的示例项目的需求,对 XPages 和 Themes 这两种技术做一个简单的介绍。
XPages 简介
XPages 是 IBM Lotus Domino 8.5 中新增的一个功能强大的设计元素,可以 充分利用它们为您的示例项目呈现 Web 客户机用户界面。让我们针对本教程的需求来认识一下 XPages 的强大功能。
XPages 为 Lotus Domino Web 应用程序开发人员提供了许多内置的功能,但在本教程中,我们只关注以下这些功能:
- XPages 中的内联 XHTML
- XPage 重复控件
- XPage 计算字段控件
XPages 中的内联 XHTML
我一开始并不觉得 XPages 有多么神奇,直到我发现我可以在自己的 XPage 开发中使用 XHTML、内联 CSS 和 JavaScript。这些内容都可以通过 XPage 源代码窗格直接构造。在 Big Brother 中,您将大量使用这个选项,从而体现了 XPages 为 Lotus Domino Web 应用程序开发人员带来的种种好处。
使用源代码窗格向您的 XPage 直接添加 XHTML、CSS 和 JavaScript,该功能让您能够使用不同的标记编辑器为您的 Lotus Domino Web 应用程序创建用户界面。此外,还使您能够轻松地从 Lotus Domino 和辅助 Web 技术中导出现有的 Web 应用程序用户界面,或快速使用模板化或第三方标记,例如(但不限于)XHTML 布局模板、对公共 JavaScript 库的内联 JavaScript 调用。
图 1 展示了从 XPage 源代码窗格中看到的新增的简单 HTML 标记以及一个 XPage 重复控件。
图 1. XPage 重复控件
XPage 重复控件
您将同时使用 XPage 重复控件和一个指定的视图数据源来呈现 XHTML 表行,因此您至少应当对 XPage 重复控件有一个基本的了解。
可以将 XPage 重复控件比作 LotusScript 中的 For All,因为重复控件中的内容将对指定数据源中所有条件得到满足的项显示。在本教程中,您将使用两个重复控制来呈现从 people 和 locations 视图生成的 XHTML。
XPage 计算文本控件
您将结合使用 XPage 计算文本控件和重复控件从视图数据源中创建每个 NotesDocument 中的 XHTML 表行。在此基础上再使用四周环绕的内联 XHTML 标记,它允许您在 Web 浏览器客户机-用户界面上呈现类似嵌入式视图的内容。
什么是 Themes?
Themes 是 Lotus Domino 8.5 提供的另一个同样强大的新设计元素,您将使用它控制呈现的 CSS 和 XPages 生成的 HTML 标记。让我们针对本教程的需求认识一下 Lotus Domino Web 应用程序开发中的 Theme 开发。
XPages(以及表单和视图等典型 Lotus Domino Designer 元素)在通过 HTTP 任务呈现并交付给 Web 浏览器客户机时将使用由 Lotus Domino 生成的标记。在以前的发行版中,在 Web 应用程序开发中使用 Lotus Domino RAD 技术时,您不能完全控制交付给浏览器的标记。对于 Lotus Domino 8.5,您现在可以使用 Themes 来控制各种特性,因此能够控制指定设计元素和设计元素对象生成的呈现标记。
简单地说,Themes 允许您精确地控制希望在 Web 浏览器客户机上呈现的内容。当与 XPage 设计元素结合使用时,您将能够更好地控制 Lotus Domino Web RAD 和屏幕应用程序。
示例 Theme 标记
熟悉 XML DTD(Document Type Definition)的读者将很快注意到 Themes 在 Lotus Domino Web 开发中的相互关系。事实上,Themes 是使用 XML 编写,XML 将在运行时进行解释,可以修改 Lotus Domino HTTP 任务中呈现的内容。
清单 1 展示了 Theme 标记的一个简单例子,它向计算文本控件添加了一个定制的 styleClass。
清单 1. 用于向计算文本控件添加定制的 styleClass 的 Theme 标记
<control target="xsp" override="true">
<name>Text.ComputedField</name>
<property mode='override'>
<name>styleClass</name>
<value>tablerow</value>
</property>
</control>
|
这个 Theme 标记将影响 XPages(target='xsp')上面的所有计算文本控件(Text.ComputedField),它将 styleClass 属性设置为 tablerow。
或者您可以选择修改单独的或一组指定的控件对象,方法是创建一个 ThemeID 并将此 ThemeID 应用到您希望修改的空间对象。
例如,假设您希望使用特定的 styleClass 呈现所有提交按钮,因为您使用 CSS 对应用程序中的所有提交按钮应用了一个独特的外观(参见清单 2)。
清单 2. 使用一个特定的 styleClass 呈现所有提交按钮
<control target="xsp" override="true">
<name>button.action.submit</name>
<property mode='override'>
<name>styleClass</name>
<value>submitbutton</value>
</property>
</control>
|
现在,在您的 XPage 源代码中,只需将 ThemeID 添加到控件对象的 ThemeID 属性(参见清单 3)。
清单 3. 将 ThemeID 添加到 ThemeID 属性
<xp:button value="Save Changes" id="button1"
themeId="button.action.submit">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete" immediate="false" save="true">
</xp:eventHandler>
</xp:button>
|
在呈现时,您现在将以下标记发送到 Web 浏览器客户机(参见清单 4)。
清单 4. 客户机的新标记
No ThemeID applied:
<button id="view:button1" name="view:button1"
type="button">Save Changes</button>
"button.action.submit" ThemeID applied:
<button id="view:button1" class="submitbutton" name="view:button1"
type="button">Save Changes</button>
|
通过类型或通过定义 ThemeID 访问全局控件对象使您能够为自己的 Lotus Domino Web 应用程序创建 MetaThemes,并且如果正确使用,还会帮助您实现良好的开发标准实践。想想看:使用一个充分定义的控件对象和 ThemeIDs 集,您可以非常轻松地让企业应用程序在功能性和视觉标准化方面焕然一新。
要获得所有 XPage 控件对象的完整列表,请尝试以下操作:
- 使用 Microsoft Windows Explorer 导航到 <Lotus Notes Client "Notes" directory>\xsp\nsf\themes。
- 创建 webstandard.theme 文件的 Operating System (OS) 副本。
- 将 OS 副本文件重命名为 webstandard.xml。
- 在您喜欢的 XML 编辑器(比如 Notepad、Textpad、Aptana 或 Eclipse)中打开 webstandard.xml。
webstandard.theme 文件包含所有 XPage 控件对象的列表,这使您能够从总体层面和个体层面上开始操作控件对象。
themes 中的资源
Themes 还允许您控制将哪些资源添加到指定的设计元素。例如,清单 5 所示的 Theme 标记将把 main.css 样式表添加到 XPage 设计元素中。
清单 5. 将 main.css 样式表添加到 XPage 设计元素
<resource rendered="#{javascript:true}">
<content-type>text/css</content-type>
<href>/main.css</href>
</resource>
|
与通过控件对象类型或 ThemeID 显式定义的 Theme 控件对象不同的是,资源可以通过指定的逻辑,使用资源对象的呈现属性有条件地显示。在清单 5 中,main.css 样式表将始终作为使用这个 Theme 的设计元素的资源进行呈现,因为 javascript:true 条件始终得到满足。
现在您已经较好地理解了 IBM Lotus Notes and Lotus Domino 8.5 Release 为 Lotus Domino Web 应用程序开发人员提供的 XPages 和 Themes 技术,可以开始构建 Big Brother 示例项目了。
|