IBM Domino Designer 9.0.1 用户指南

第一版

2013 年 10 月发布

关于本修订版

为了兑现关于辅助功能选项的承诺,IBM 提供了此版本的产品文档。

对本文档的更新

本 HTML 文件中包含本发行版的官方产品文档的最新草稿。这一草稿是按季度视需要进行更新的。有关最新的产品文档更新,请参阅 Wiki 上“产品文档”部分中提供的发行版特定的文章。

打印

打印本文档时,将除去某些样式元素以生成更好的打印输出。以下是一些有关打印的提示:
  • 本文档的长度可能超出浏览器的打印能力。Microsoft Internet Explorer 已显示出成功打印大型文件的能力。
  • 本文档比较长。请使用打印预览,以确定打印页面的长度。
  • 您可以突出显示文档的一段,然后选择仅打印选定内容。

脱机工作

您可以从浏览器保存本文档的本地副本。每个浏览器都有不同菜单和菜单选项。如果本地保存文档时需要协助,请参阅浏览器帮助。

反馈提交

如果您希望提供关于本文档的反馈,请参阅文档反馈 Web 站点。

IBM Domino Designer 9.0.1 Social Edition 中的新增功能

有关 Domino® Designer 中新功能和改进情况的信息。

本主题列出了 Domino Designer 9.0.1 Social Edition 的新增功能和更改情况。

Domino Designer 帮助的定期更新在 Web 上提供。要下载最新的 Designer 帮助文件,请转至 developerWorks® 的“Documentation Library”部分 (http://www.ibm.com/developerworks/lotus/documentation/)。 依次单击 Technical Libraryby product 和 Domino Designer,最后单击您要查看的发行版。

在 Domino Designer 和 XPage 的区域中,此发行版更改和添加的内容包括:

  • 将 Dojo 版本从 1.8.1 升级到 1.8.3
  • 使以下 XPage 功能符合 Web 辅助功能选项需求:
    • XPage 运行时体验
    • XPage Teamroom 模板 Web 用户界面
    • XPage 讨论模板 Web 用户界面
  • XPage 9.0.1 移动增强功能包括以下项:
    • 增加了要与 Extension Library 中的移动应用程序页面及移动单页应用程序控件一起使用的事件
    • 增加了一个 deviceBean,用于提供一种易于使用且易于编程的方法来识别一系列热门的移动设备和平板电脑设备。通过该 bean 提供的信息,您将能够根据发出请求的设备或浏览器,做出是加载还是卸载应用程序页面一部分的编程决策。
    • 照片/视频文件上载功能
    • 适用于 iOS 和 Android 的 OneUI IDX 移动主题
    • 适用于 iOS 和 Android 的缺省移动主题和移动主题覆盖
    • 用于模拟 iOS 或 Android 用户代理的移动调试用户代理开关
  • 包括搜索 bot 支持的动态搜索(搜索引擎优化)改进,以便与改进的使用动态内容功能的 Wiki 页面响应相一致。
  • 将 XULRunner for XPiNC(Notes® 客户机中的 XPages)升级到 10.0.6 以改进 XPage 在 Notes 客户机中的呈现
  • 对建立产品帮助索引的改进
  • 能够通过使用直接在 Domino 服务器上运行基于服务器的 XPage 应用程序应用程序启动选项直接在 Domino 服务器上运行基于服务器的 XPage 应用程序。
  • XPiNC(Notes 客户机中的 XPages)客户端 JavaScript 增强功能 - 添加 XSP.executeCommand() 功能。

  • 更新了缺省 Designer JVM.Properties 设置,以支持更高的内存需求
  • 改善了部分刷新文件上载
  • CKEditor 已从 3.6.6.1 升级到 3.6.6.2

请参阅本文档的 XPage 部分以获取有关某些 XPage 项目的更多详细信息。

请参阅本文档的“可编程性、语言和服务”部分,以了解有关这些类型的项的更多详细信息。

XPage

业务领域有一个需求:设计和创建出各种健全和残障人士均可使用的软件应用程序。 要使用 XPage 创建辅助功能应用程序,需要了解多种用户的需求,包括残障人士以及有与年龄相关的能力限制的成熟用户。

此发行版在 XPage 区域中进行了大量更改,以帮助开发人员创建具有辅助功能的 XPage 应用程序并让 XPage 运行时体验更加符合辅助功能选项需求。

这些项目提供了此发行版中辅助功能选项合规性更改和添加的摘要。

  • 新的辅助功能主题简介 - XPage 目前支持符合辅助功能选项准则和需求的主题。 此主题名为 oneuiv2.1_blue
  • 废弃 role 属性 - 对于这些控件,从 9.0.1 开始,已废弃 role 属性。 缺省情况下,会生成适当的辅助功能选项合规值。 为符合辅助功能选项标准,请不要指定此属性的值。
    • xp:dataTable - 数据表
    • xp:fileDownload - 文件下载
    • xp:viewPanel - 视图
    • xp:tabbedPanel - 选项卡式面板
    • xp:tabPanel - 请参阅“选项卡式面板”
    • xp:pager - 页面调度程序
    • xp:pagerControl - 请参阅“页面调度程序”
    • xe:dataView - 数据视图
  • 窗口小部件容器控件添加了 accesskey - 加速键属性和 tabindex - 跳进索引属性 - 这些属性是 R9.0.1 中此控件的新增属性。 请参阅本指南的属性参考 (Extension Library) 部分以获取更多信息。
    • xe:widgetContainer - 窗口小部件容器
  • 添加了 titleBarLabel - 标题栏属性、placeBarLabel - 位置栏属性、leftColumnLabel - 左列构面属性以及 rightColumnLabel- 右列构面属性 - 这些属性是 R9.0.1 的新增属性。 适用于此控件。请参阅本指南的属性参考 (Extension Library) 部分以获取更多信息。
    • xe:applicationConfiguration - 应用程序配置
  • 添加了 ariaLabel - ARIA 标签属性 - 此属性是 R9.0.1 的新增属性。 适用于这些控件。请参阅本指南的添加控件 - 属性参考添加控件 - 控件参考属性参考 (Extension Library) 部分以获取更多信息。
    • xe:formtable - 表单表
    • xe:navigator - 导航器
    • xp:pager - 页面调度程序
    • xe:pagerAddRows - 页面调度程序添加行
    • xe:pagerDetail - 页面调度程序显示/隐藏详细信息
    • xe:pagerExpand - 页面调度程序展开/折叠
    • xe:pagerSizes - 页面调度程序大小
    • xe:tagCloud - 标签云
    • xe:dataView - 数据视图
  • 添加了summary - 数据摘要属性 - 此属性是 R9.0.1 的新增属性。适用于此控件。请参阅本指南的属性参考 (Extension Library) 部分以获取更多信息。
    • xe:dataView - 数据视图
  • 添加了 headerLinkTitle - 标题链接标题属性 - 此属性是 R9.0.1 的新增属性。 适用于这些控件。请参阅本指南的属性参考 (Extension Library) 部分以获取更多信息。
    • xe:viewExtraColumns - 请参阅“附加列”属性。
    • xe:viewSummaryColumn - 请参阅“摘要列”属性。
  • 添加了 imageAlt - 图像替代文本属性 - 此属性是 R9.0.1 的新增属性。 适用于此控件。请参阅本指南的添加控件 - 属性参考添加控件 - 控件参考部分以获取更多信息。
    • xp:tabPanel - 请参阅“选项卡式面板”控件。
  • 添加了 linkTitle - 链接标题属性 - 此属性是 R9.0.1 的新增属性。 适用于这些控件。请参阅本指南的属性参考 (Extension Library) 部分以获取更多信息。
    • xe:viewExtraColumns - 请参阅“附加列”属性
    • xe:viewSummaryColumn - 请参阅“摘要列”属性。
  • 添加了 readonly - 只读属性 - 此属性是 R9.0.1 的新增属性。 适用于此控件。请参阅本指南的添加控件 - 属性参考添加控件 - 控件参考部分以获取更多信息。
    • xp:label - 标签
  • 辅助功能选项合规性需求文档 - 这些控件具有特定的辅助功能选项合规性需求并已记录在此发行版中。 请参阅本指南的添加控件 - 属性参考添加控件 - 控件参考部分以获取更多信息。
    • xp:button - 按钮
    • xp:checkBox - 复选框
    • xp:checkBoxGroup - 复选框组
    • xp:dataTable - 数据表
    • xp:dateTimeHelper - 日期时间选取器
    • xp:label - 标签
    • xp:link - 链接
    • xp:message - 显示错误
    • xp:radioGroup - 单选按钮组
    • xp:radio - 单选按钮
    • xp:Table - 表
    • xp:tabbedPanel - 选项卡式面板
  • 未就最新辅助功能选项标准对当前控件进行测试 - 这些控件尚未针对最新辅助功能选项标准进行测试。 建议使用替代的辅助功能路径。 请参阅本指南的添加控件 - 属性参考添加控件 - 控件参考属性参考 (Extension Library) 部分以获取更多信息。
    • xe:djAccordionContainer
    • xe:djAccordionPane
    • xe:djBorderContainer
    • xe:djBorderPane
    • xe:djButton
    • xe:djCheckBox
    • xe:djComboBox
    • xe:djContentPane
    • xe:djCurrencyTextBox
    • xe:djDateTextBox
    • xe:djextImageSelect
    • xe:djFilteringSelect
    • xe:djNumberSpinner
    • xe:djNumberTextBox
    • xe:djRadioButton
    • xe:djSimpleTextarea
    • xe:djStackContainer
    • xe:djStackPane
    • xe:djTabContainer
    • xe:djTabPane
    • xe:djTextarea
    • xe:djTextBox
    • xe:djTimeTextBox
    • xe:djToggleButton
    • xe:djValidationTextBox
    • xe:djxDataGrid
    • xe:djxDataGridColumn
    • xe:djxDataGridRow
    • xe:dropDownButton
    • xe:dynamicViewPanel
    • xe:inPlaceForm
    • xe:linksList
    • xe:listView
    • xe:listViewColumn
    • xe:popupMenu
    • xe:sortLinks
    • xe:toolbar
    • xe:tooltip
    • xe:tooltipDialog
    • xp:viewColumn
    • xp:viewColumnHeader
    • xp:viewPager
    • xp:viewPanel
    • xp:viewTitle
  • 动态内容改进 - 对于此发行版,改进了动态内容功能,在无法执行客户端 JavaScript 代码的情况下通过搜索 bot 来支持建立文档索引。

    配置文件中添加了新属性以允许指定需要被识别为 Web 搜寻器的用户代理标识。 如果列表中存在的标识包含在请求的用户代理标题中,则在呈现链接时或在重定向响应的位置标题中会返回不同的 URL。 差别在于“#”符号被“?”或“&”符号所替代。

    仅当请求中存在 content 参数时才会发生此情况。 如果执行了此检查,那么结果将存储在会话属性中以将对性能的影响降至最低。

    通过使用返回的 URL,Web 搜寻器随后可以检索文档而不必执行客户端 JavaScript。 此示例显示如何使用此属性:

    # ########################################
    # 搜索引擎 Web 搜寻器用户代理标识
    # ########################################
    # 以逗号分隔的 Web 搜寻器用户代理标识小写形式列表。如果缺少此属性,则将使用知名搜索搜寻器的硬编码列表(Google、Bing、Yahoo)。几乎没有可用于表示特殊含义的关键字
    # <empty>:该功能被禁用,不会针对用户代理标题执行任何检查
    # <auto>:此关键字被替换为硬编码搜索搜寻器标识列表。
    
    #xsp.search.bot.id.list=<empty>(将禁用检查)后跟通常行为,不会针对用户代理执行任何检查。
    
    #xsp.search.bot.id.list=<auto>,blekkobot(将在要针对用户代理进行检查的标识列表中包含 google、bing、yahoo 和 blekko 搜索搜寻器,如果在用户代理标题中找到其中某个标识,会将其视为 bot,且将对 URL 进行标准化以帮助建立索引。即,避免在 URL 中使用 # 符号)

    如果启用此配置,Google 搜索 bot 的用户代理:Mozilla/5.0(可兼容;Googlebot/2.1;+http://www.google.com/bot.html)会被识别为 bot,且会后跟替代行为。

  • 能够通过使用直接在 Domino 服务器上运行基于服务器的 XPage 应用程序应用程序启动选项直接在 Domino 服务器上运行基于服务器的 XPage 应用程序。

    为使此操作生效,必须先在 Notes 中设置帐户以获得对 HTTP Server 的访问权限。 要创建或查看 Notes 帐户,请在 Notes 中选择文件 -> 首选项 -> 帐户,并确保其类型正确 (HTTP/HTTPS) 且包含必须用于访问服务器的标准主机名。 如果要使用 SSO,那么该名称必须与向服务器注册的服务器名称精确匹配。 如果无法从 Notes 工作空间中的信息精确派生出主机名,则会显示错误。

    然后应注册要使用的 RunOnServer 应用程序并提供要使用的主机名。 要执行此操作,请转至文件 > 首选项 > XPage 性能 > 在服务器上运行以添加应用程序、服务器和主机名。

    可以独立于 XPage 对此进行测试,方法是设置帐户,然后在 Notes URL 地址栏中输入应用程序的 HTTP 地址。 如果应用程序未提示即进行加载,那么 Notes 嵌入式浏览器正确传递了在 Notes 帐户框架中定义的信息。 另外,请确保将地址栏中使用的相同服务器名称存储在 RunOnServer 首选项中并用作可选主机名。

  • XPiNC(Notes 客户机中的 XPages)客户端 JavaScript 增强功能 - 添加 XSP.executeCommand() 功能。自 9.0 起已添加 XSP.executeCommand(commandID, commandParameters)commandID 识别请求的功能。 commandParams 是包含任意参数值或可为空的对象。 此功能使用与其他 XPiNC XSP JavaScript 命令相同的运行时路径,如 XSP.alert()、 XSP.confirm()、XSP.publishEvent() 等。

    在调用 XSP.executeCommand() 时,XPages 会查看注册命令提供程序的列表。 如果找到处理该命令的添加程序,则会调用并执行该添加程序并(如果需要)返回结果。

可编程性、语言和服务

在可编程性和语言区域中,添加或更改了以下内容:

  • 移动控件事件 - 在移动增强功能这一领域中,已添加下列事件,以便与 Extension Library 中的移动应用程序页面及移动单页应用程序控件一起使用。
    • onOrientationChange
    • onBeforeTransitionIn
    • onAfterTransitionIn
    • onBeforeTransitionOut
    • onAfterTransitionOut

    请参阅此用户指南以获取更多信息。

  • deviceBean - 此外,在移动应用程序开发增强功能这一领域中,为本发行版增加了 deviceBean 及其关联的 API。

    在本发行版之前的版本中,XPage 提供了 context.getUserAgent() 服务器端用户代理 API。此 API 用于识别发出请求的用户代理。这样做有助于在服务器端对资源(如 CSS 和客户机端 JavaScript)进行管理。 这还有助于进行应用程序布局,并且使您可以在向发出请求的用户代理发送响应之前显示或隐藏 XPage 中的组成部分。

    考虑到移动计算比较热门,现在还应确保能够识别除了典型桌面浏览器应用程序之外的多种用户代理类型(即移动设备)。为帮助进行此任务,在 XPage 运行时中引入了称为 deviceBean 的新受管 bean,用于提供一种易于使用且易于编程的方法,以直接在服务器端 JavaScript 或扩展语言 (EL) 计算的表达式中识别一系列热门的移动设备和平板电脑设备。通过该 bean 提供的信息,您将能够根据发出请求的设备或浏览器,做出是加载还是卸载应用程序页面一部分的编程决策。

    例如,可以通过调用 # {deviceBean.mobile} 而在 EL 中识别移动设备,以及通过调用 # {javascript:deviceBean.isMobile()} 而在服务器端 JavaScript 中识别移动设备。deviceBean 还支持扩展点,因此可以在 IBM® 将来提供的升级包中对其进行增强,或者对其进行定制以满足您自己的定制项目的需求。

    此 bean 可以使用以下 API:

    • deviceBean.mobile - EL 版本。将设备识别为移动设备。
    • deviceBean.isMobile() - JavaScript 版本。 将设备识别为移动设备。
    • deviceBean.tablet - EL 版本。将设备识别为平板电脑。
    • deviceBean.isTablet() - JavaScript 版本。 将设备识别为平板电脑。
    • deviceBean.getValue() - JavaScript 版本。 用于以替代方式访问所有其他方法,以及提供对将来的扩展的访问权。例如,可以使用 getValue('mobile') 并使其返回与 isMobile 相同的结果,或者使用 getValue('chrome') 以返回扩展调用 isChrome()(在使用表达式语言时,可以是 deviceBean.chrome
    • deviceBean.iphone - EL 版本。将设备识别为 iPhone。
    • deviceBean.isIphone() - JavaScript 版本。 将设备识别为 iPhone。
    • deviceBean.ipad - EL 版本。将设备识别为 iPad。
    • deviceBean.isIpad() - JavaScript 版本。 将设备识别为 iPad。
    • deviceBean.android - EL 版本。将设备识别为 Android 设备。
    • deviceBean.isAndroid() - JavaScript 版本。 将设备识别为 Android 设备。
    • deviceBean.blackberry - EL 版本。将设备识别为 Blackberry 设备。
    • deviceBean.isBlackBerry() - JavaScript 版本。 将设备识别为 Blackberry 设备。
    • deviceBean.windows - EL 版本。将设备识别为 Windows 移动设备。
    • deviceBean.isWindows() - JavaScript 版本。 将设备识别为 Windows 移动设备。
    • deviceBean.version['key'] - EL 版本。返回指定密钥的版本(例如,#{deviceBean.version['iphone']}
    • deviceBean.getVersion('key') - JavaScript 版本。 返回指定密钥的版本(例如,#{javascript:deviceBean.getVersion('iphone');}
    以下代码样本提供了有关使用 deviceBean 中提供的 API 的一些示例:
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
    	<xe:singlePageApp id="singlePageApp1"
    		selectedPageName="appPage1">
    		<xe:appPage id="appPage1" pageName="appPage1">
    			<xe:djxmHeading id="djxmHeading1">deviceBean</xe:djxmHeading>
    	<xe:djxmRoundRectList id="djxmRoundRectList1">
    				<xe:djxmLineItem id="djxmLineItem2" label="Mobile"
    					rightText="#{deviceBean.mobile}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem5" label="Tablet"
    					rightText="#{deviceBean.tablet}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem1" label="Android"
    					rightText="#{javascript:deviceBean.isAndroid()}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem7" label="Apple"
    					rightText="#{javascript:deviceBean.getValue
    ('apple')}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem8" label="Windows"
    					rightText="#{javascript:deviceBean.getValue
    ('windows')}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem9" label="Blackberry"
    					rightText="#{javascript:deviceBean.getValue
    ('blackberry')}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem22" label="iPhone"
    					rightText="#{javascript:deviceBean.isIphone()}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem23" label="iPad"
    					rightText="#{deviceBean.ipad}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem24" label="iPod"
    					rightText="#{javascript:deviceBean.getValue
    ('ipod')}">
    		</xe:djxmLineItem>
    	</xe:djxmRoundRectList>
    		</xe:appPage>
    	</xe:singlePageApp>
    </xp:view>

在 Domino 访问服务 (REST API) 的区域中,本发行版中增加或更改了以下内容:

  • Domino 核心服务 - 通过此 REST API,可以访问非特定于任何一个服务域的资源。例如,大部分应用程序都要求读取有关认证用户密码的信息(上次更改日期、到期日期,等等)。由于这一要求并非特定于任何一个特定 REST 服务(日历、邮件,等等),因此这一功能包含在核心服务中。核心服务中提供的资源包括:
    • 密码统计信息资源 (pwstats)
    • 现时标志资源
  • Domino 日历服务 - 这是一个 REST API,可提供用于访问日历数据的资源和方法。此服务同时以 JSON 和 iCalendar 格式表示日历数据。

产品概述

IBM Domino Designer 支持使用 XPage、表单、视图和其他元素(如控件)对 IBM Domino 平台进行应用程序开发。

XPage 是一种快速应用程序开发技术,用于创建基于 Web 的协作应用程序。XPage 提供了一组丰富多样的用户界面和数据访问控件,这些界面和控件都是基于 Java™ Server Faces 技术构建的。XPage 支持现有 IBM Notes 与 Domino NSF 资产(如文档、视图、代理程序、公式和安全性)的集成。这些应用程序在浏览器和 Notes 客户端中都可以呈现为动态 Web 2.0 页面。开发界面提供了直观的拖放设计环境和 XML 源环境。表示法通过级联样式表 (CSS) 进行控制,并且可使用 JavaScript 开发业务逻辑。

Domino Designer 文档包括:

  • 《Domino Designer 用户指南》介绍了产品并描述了 XPage 及其支持的元素。此信息还描述了 Domino Designer V8.5 之后添加的功能部件。
  • 《Domino Designer XPages 参考》描述了 Domino 对象、简单操作以及 XPage 中与编程相关的其他项的 JavaScript 接口。
  • 《Domino Designer 基本用户指南和参考》描述了 Domino Designer 的基于表单的元素,包括表单、视图、公式语言和 LotusScript® 等等。

本文档引用了以下产品:IBM Domino、IBM Domino Designer、IBM Notes、IBM iNotes® 和 IBM Notes Traveler。

了解 XPage

XPage 应用程序是由 Domino 服务器或 Notes 客户端解释并在 Web 浏览器或 Notes 客户端中呈现的 XML。您可以与页面上的控件进行交互来向服务器发送请求。

例如,此 XML 代码用于包含一个编辑框和两个按钮的 XPage 应用程序:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="create"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText><xp:br></xp:br>
	<xp:button id="button1" value="Submit"><xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button>
	<xp:button id="button2" value="Cancel"><xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="true" save="false"></xp:eventHandler></xp:button>
	<xp:this.navigationRules>
		<xp:navigationRule outcome="xsp-success" viewId="/main.xsp"></xp:navigationRule>
	</xp:this.navigationRules>
</xp:view>
以下为示例 XML 代码含义的逐行说明:
  • xmlns:xp="http://www.ibm.com/xsp/core"

    Domino 在名称空间 http://www.ibm.com/xsp/core(使用 xp 作为元素缩写)中定义控件和其他工件。

  • xp:dominoDocument var="document1" formName="create"

    XPage 应用程序与名为 create 的 Domino 表单相关联。

  • xp:inputText id="inputText1" value="#{document1.subject

    输入框绑定到 create 表单上名为 subject 的字段。

  • xp:button id="button1" value="Submit", save="true", xp:navigationRule outcome="xsp-success" viewId="/main.xsp"

    单击时,第一个按钮会将请求发送到服务器。服务器基于 create 表单将输入框中的数据另存为新文档,然后将名为 main 的另一个页面发送到客户端。

  • id="button2" value="Cancel", save="false"

    单击时,第二个按钮也会将请求发送到服务器。在此情况下,服务器会发送回 main 页面。

Domino Designer 提供的用户界面 (UI) 包括导航器、XPage 编辑器、控件选用板、属性选项卡、事件选项卡和其他工件。下面显示如何在 Domino Designer 的设计方式下显示先前 XML 代码所创建的页面:
XPage 用户界面

用户可以使用菜单或拖放来处理编辑器中的控件和文本。用户还可以使用各种选项卡来设置属性和事件的值。另请注意,用户可以使用选项卡来直接编辑 XML。

用户使用 XPage 属性将 Domino 表单和 Domino 视图标识为数据源,并使用控件属性将控件绑定到数据源上的字段。

要点: 直接编辑 XML 时请小心,因为错误可能会导致 XPage 不起作用。
核心控件包括:
  • 用于获取输入的控件 - 编辑框、富文本格式、多行编辑框、列表框、组合框、复选框、单选按钮、复选框组、单选按钮组、日期时间采集器
  • 用于执行操作的控件 - 按钮、文件上载、文件下载
  • 用于显示的控件 - 链接、标签、计算的字段、图像、显示一个错误、显示多个错误、分页器
  • 定制控件 - 可编辑区域
容器控件包含以下内容:
  • 面板 - 在页面上创建矩形以包含其他控件
  • 重复 - 以可变次数重复控件
  • 包含页面 - 合并其他 XPage
  • 表 - 创建具有固定列数和行数的表
  • 视图 - 合并 Domino 视图
  • 数据表 - 创建其中间行数可变并绑定到数据集合的表
  • 选项卡式面板 - 创建一组重叠面板,其中每个面板通过单击选项卡进行访问
  • 区段 - 创建可折叠面板
编程接口是同时在服务器和客户端上运行的 JavaScript:
  • 客户端 JavaScript 与 onclickonbluronfocus 等事件相关。在 Web 浏览器或 Notes 客户端向服务器发送请求之前,这些脚本会在该浏览器或客户端上运行,并且使用 Web 文档对象模型 (DOM)。您可以创建脚本,例如,用于验证输入框中是否包含内容或确认除去数据的服务器操作。
  • 服务器 JavaScript 也连接到事件,但在请求传递到服务器之后才启动。此外,服务器 JavaScript 可用于计算控件值、数据绑定和属性。服务器 JavaScript 有权访问大量的库,包括 Domino 对象的库。这些是也可通过 LotusScript 和 Java 访问的相同 Domino 对象。它们访问 Domino 数据存储并处理 Domino 环境。
在某些上下文中也可以使用简单操作和表达式语言 (EL)。

全局对象提供了用于核心对象的简单创建机制。例如,session 是当前会话的 NotesSession 对象,database 是当前应用程序的 NotesDatabase 对象,context 是其中正在运行 JavaScript 的上下文的 XSPContext 对象。作用域变量提供了用于跨控件、跨页面和跨会话共享值的简单机制。

表单和视图

在 Domino 中,表单定义如何向用户显示文档以及如何存储表单的数据项。视图会以列和行的形式报告文档。

在用户打开新文档时,定义该文档的表单用于呈现客户端 UI 上的页面。在用户保存该新文档时,UI 中的数据用于根据该表单上的数据定义来创建该文档。同样,在用户打开现有文档时,将根据该表单上的数据定义在客户端 UI 上呈现数据。

通常情况下,视图的每一行代表一个文档。但是,在 XPage 应用程序中可轻松将多个视图连接在一起,因此,每一行都是该行多个文档的视图。

列可以包含文档中的数据值或计算的信息,如文档的上次修改日期。可以对视图进行排序或分类以便更好地呈现文档。视图可用作数据的访问机制,例如,允许用户通过在视图中双击文档的行来打开该文档。

XPage 应用程序同时使用表单和视图。您可以使用表单将页面上的控件连接到 Domino 数据定义。首先,将页面与表单相关联。然后,将页面上的数据输入控件绑定到表单上的字段。Domino 视图可以合并到 XPage 视图控件中。

可在页面上使用的其他 Domino 元素包括:
  • JavaScript 库
  • 图像资源
  • 样式表资源
  • 主题资源

在 Domino Designer 中导航

IBM Domino Designer 安装为 Eclipse 透视图,这些透视图排列为易于访问的视图、选用板和编辑器。您可以使用主菜单、右键单击菜单以及视图、选用板和编辑器标题栏中的图标来执行任务。

IBM Domino Designer 透视图如下所示:
  • Domino Designer 显示“应用程序导航器”中的所有设计元素,并且是缺省透视图。
  • XPage 排除 XPage 开发所不需要的设计元素。
  • 表单/视图排除仅 XPage 开发所需要的设计元素。

要更改透视图,请单击窗口 > 打开透视图

要调整透视图的内容,请转至文件 > 首选项 > Domino Designer > 应用程序导航器

由于 IBM Domino Designer 透视图是按照 Eclipse 约定定义的,因此您可以移动、关闭和打开视图,以及调整视图大小。要将您的新安排保存为具有所选名称的新透视图,请选择菜单栏中的窗口 > 将透视图另存为

还可以通过使用缺省 Eclipse 键盘快捷键 Ctrl+F7 或单击 Eclipse 主菜单中的窗口 > 导航来浏览视图。

要查看任何隐藏的视图,请单击 Eclipse 主菜单中的窗口 > 显示 Eclipse 视图,然后从列表中选择隐藏的视图。

设计元素和应用程序导航器

“应用程序导航器”显示了可用设计元素。

缺省情况下,“应用程序导航器”在窗口左侧。创建或打开应用程序时,其元素会显示在“应用程序导航器”中。
  • 要创建应用程序,请单击文件 > 新建 > 应用程序,或在“应用程序导航器”中右键单击并选择新建应用程序 (Ctrl-N)。
  • 要打开现有的应用程序,请在“应用程序导航器”中选择该应用程序,如果应用程序不在导航器中,请单击文件 > 应用程序 > 打开并选择它。
  • 要查看可用的设计元素类型和设计元素组,请展开应用程序。展开组可看到该组中的设计元素类型。
  • 要创建所选类型的设计元素,请使用菜单或右键单击。设计元素一经创建,即会显示在其类型下面。通过双击元素类型,设计元素列表就会显示在编辑器中。通过双击设计元素,可以打开该元素进行编辑。

下表描述了每个设计元素,并指示该元素通常用于的应用程序类型。

设计元素 描述
表单 提供用于创建和显示文档的结构。对于 XPage,您可以使用表单作为数据源。
视图 是经过排序或分类的文档列表。对于基于表单的设计器,视图是数据库中存储的数据的入口点。视图可以合并到 XPage 中。
文件夹 是用于存储相关文档或文档分组的容器。文件夹与视图具有相同的设计元素。
XPage 定义用户在使用应用程序时与之进行交互的文本和用户界面 (UI) 控件。
定制控件 是作为单个对象存储的 UI 控件的集合。
框架集 是用于向应用程序添加结构的框架的集合。
页面 是显示信息的数据库设计元素。
共享元素 - 子表单 是作为单个对象存储的表单元素的集合。
共享元素 - 字段 收集数据。您可以在表单、子表单和布局区域上创建字段。对于 XPage,您可以将控件绑定到字段。
共享元素 - 列 显示字段值和有关文档的其他信息。您可以在视图和文件夹上创建列。
共享元素 - 大纲 为应用程序提供组织结构,并控制元素在导航窗格中的显示方式。
共享元素 - 导航器 是引导用户访问应用程序特定部分的图形指南。
代码 - 代理程序 在应用程序的任何部分中设置用户激活的任务或后台任务。
代码 - 共享操作 在表单或视图上设置用户激活的任务。
代码 - 脚本库 包含 LotusScript、Java 或 JavaScript 代码,以用于包括在客户端或服务器编程元素中。JavaScript 库用于 XPage。
代码 - 数据库脚本 是为应用程序级别事件(如打开或关闭应用程序)激活的编程元素。
代码 - Web Service 提供者 是基于 XML 的自包含、自描述的模块化应用程序,可以发布到 Web 以及从 Web 调用。Web Service 提供者是托管在 Domino 服务器上的 Web Service,以便可以从其他计算机调用此 Web Service。
代码 - Web Service 使用者 调用其他计算机上的 Web Service。
代码 - Java

创建作用域限定于 NSF 项目的 Java 接口枚举元素(在 Java 透视图中的代码/Java 下)。Java 代码可由 XPage 中的代码直接调用。

代码 - JAR

使您能够处理包含在应用程序 NSF 中的封装 Java 代码/库。您不必将 JAR 部署到服务器和/或将源文件仅包括在应用程序数据库中。此元素仅可用于 XPage 应用程序,其中 JAR 由 XPage 运行时自动装入。

数据 - 数据连接 是在 Domino 应用程序与外部数据源之间建立数据交换的资源。
数据 - DB2® Access 视图 定义 Notes 数据的 DB2 视图。
资源 - 图像 用作 XPage、页面、表单、子表单、操作按钮和大纲条目上的图形或图标,并用作表单、文档、页面、表单元格和操作按钮上的背景图像。
资源 - 文件 允许您在应用程序内以及各应用程序之间共享非 NSF 文件。
资源 - Applet 是可以在 Domino 应用程序中运行的自包含 Java 程序。
资源 - 样式表 可创建或导入。缺省情况下,XPage 和 UI 控件使用 Domino 附带的缺省级联样式表 (CSS)。您可以使用这些资源来覆盖缺省样式表。
资源 - 主题 是可用于定义应用程序外观的 HTML 生成的服务器端定制。缺省情况下,XPage 和用户界面控件使用为服务器定义的任何主题。该全局主题可以针对所有应用程序进行修改,也可以由某个应用程序特定主题进行覆盖。
资源 -“关于”文档 描述应用程序的用途。
资源 -“使用”文档 为用户提供指示信息。
资源 - 图标 帮助用户在书签窗格上快速识别数据库,并可从图标编辑器添加到应用程序中。
组合应用程序 - 连线属性 使您能够访问组合应用程序中的 WSDL 文件。
组合应用程序 - 应用程序 使您能够访问包含组合应用程序的定义的必需 XML 文件。
组合应用程序 - 组件 如果基于 XPage,那么在组合应用程序中部署
应用程序配置 - 应用程序属性 允许您设置应用程序范围的属性。
应用程序配置 - Faces-config 提供对 webcontent\web-inf\faces-config.xml 的编辑访问权。这是用于在 XPage 中配置受管 Bean(以及定制转换器/验证器之类的其他事项)的配置文件。
应用程序配置 - Xsp 属性 提供对包含 XPage 框架参数集合的文件(称为 xsp.properties)的编辑访问权。它在应用程序或服务器级别用于设置和控制应用程序 XPage 中的 XPage 设置。每个 XPages NSF 应用程序包含一个 xsp.properties 文件。

由于此用户指南主要介绍 XPage 和使用 XPage 的应用程序,因此会详细解释 XPage 应用程序中所使用的那部分设计元素。更多“基于表单”的设计元素和“基于表单”的应用程序的详细文档位于《Domino Designer 基本用户指南和参考》中。

选择并过滤设计元素类型

您可以选择并过滤要显示在“应用程序导航器”中的设计元素类型,方法是在首选项 > Domino Designer > 应用程序导航器中进行选择。

通过在首选项面板上选择元素,选择您首选使用并显示的元素。通过从面板上的 \list 中选择透视图,您还可针对以下三个透视图之一分别设置选择和过滤选项:Domino Designer、XPage 和“表单/视图”Domino Designer。

比较设计元素的版本

您可以通过右键单击特定项并从上下文菜单中选择比较类型,比较不同版本的设计元素或资源。执行比较时,比较编辑器会出现在编辑器区域中。版本之间的差异将突出显示在比较编辑器中,从而允许您浏览并复制所比较版本之间的更改。

您可以执行以下比较类型:
  • 比较对象 > 本地历史记录 - 将所选元素或资源与保存更改时所维护的本地历史记录中的元素或资源进行比较。
  • 比较对象 > 相互 - 将两个或三个所选元素或资源相互比较

设计编辑器

设计编辑器是用于编辑 XPage 和其他设计元素以及查看设计元素列表的区域。

属性视图显示编辑器中当前选择的属性。例如,如果您正在处理 XPage 中的某个用户界面 (UI) 控件,只要您在 XPage 编辑器中单击该 UI 控件,属性视图就会显示该 UI 控件的属性。

您可以在编辑器中执行以下任务:

任务 操作
打开设计元素或列表 选择“应用程序导航器”中的设计元素或列表。双击该元素或列表或者单击文件 > 打开
在打开的设计元素和列表之间切换 单击您要查看的设计元素或列表的选项卡。
关闭设计元素或列表 单击设计元素或列表选项卡上的关闭图标(X 图标),或者选择该选项卡并单击文件 > 关闭
关闭包含当前设计元素或列表在内的所有设计元素和列表 单击文件 > 全部关闭。也可以右键单击选项卡,并选择全部关闭
最大化编辑器 单击最大化图标或双击选项卡。
将编辑器恢复至其初始大小和位置 单击恢复图标或双击选项卡。仅当编辑器已最大化时,才会启用此功能。
使用键盘箭头键调整编辑器的大小 右键单击选项卡并选择大小,然后选择左边右边顶部底部来突出显示编辑器边缘。按下合适的键盘箭头键来扩展或缩小编辑器。

源代码编辑器

使用源代码编辑器可直接编辑 XPage 源代码。

在您编辑 XPage 时,可以使用“源代码”选项卡来直接编辑 XPage 源代码。如果您熟悉 XPage 语言,这可能非常有用。

您可以在编辑器中执行以下任务:

任务 操作
在编码时使用内容辅助。

CTRL+空格键 以在编码时调用内容辅助功能。这也适用于 XPage 中嵌入的 SSJS(服务器端 JavaScript)。

作为 XPage 源代码编辑器的功能的内容辅助通过使用模式进行驱动。Domino Designer 基于当前 Notes 应用程序动态构建模式。该模式将每个标记的每个属性的帮助信息包含为 XPage 运行时的一部分。

在编码时使用超链接导航。

超链接导航描述通用 Eclipse 功能,其中编辑器内的文本可设置为超链接。将鼠标悬浮在任何文本或链接(包括定制控件名称)上时按下 CTRL 键可直接浏览到该链接位置/设计元素。Eclipse 向编辑器提供反馈,表明您使用的是超链接导航。

例如,在编辑定制控件时使用此功能。在按下 CTRL 键并将鼠标悬浮在源代码编辑器中的定制控件时,超链接导航允许您直接浏览到该定制控件。

在编码时使用悬浮式帮助。

要使用此功能,请将光标悬浮在特定“节点”上以获取有关该节点的更多信息。与超链接导航(请参阅上文)类似,Eclipse 编辑器框架能够提供当前标记(和属性)的描述。

通过 xsp-config 为自身提供描述的所有标记和属性能够使该信息显示在 XPage 源代码编辑器内的悬浮式帮助功能中。

您可以从 Domino Designer“首选项”选项卡控制此功能的行为。缺省情况下,该功能已开启,与首选项关联的超时为 500 毫秒。即,一旦光标处于“静止”状态的时间超过 500 ms(毫秒),Eclipse 编辑器框架将调用 XPage 源代码编辑器悬浮式帮助功能。

调用产品帮助系统 F1 键以打开上下文帮助。
执行其他编辑任务。 右键单击源代码编辑器页面以显示在编辑器中可以执行的其他操作的菜单。
最大化编辑器 单击最大化图标或双击选项卡。
将编辑器恢复至其初始大小和位置 单击恢复图标或双击选项卡。仅当编辑器已最大化时,才会启用此功能。
使用键盘箭头键调整编辑器的大小 右键单击选项卡并选择大小,然后选择左边右边顶部底部来突出显示编辑器边缘。按下合适的键盘箭头键来扩展或缩小编辑器。

选用板和视图

选用板和视图提供用于处理设计元素的工具。

选用板

选用板允许您使用控件和数据源。可以使用以下选用板:

控件选用板
包含 UI 控件和定制控件,这些控件用于设计 XPage 的布局以及确定如何在数据库中输入并存储数据。可以从选用板中将控件拖放到 XPage 上。

仅当 XPage 编辑器处于活动状态时(例如,在编辑 XPage 或定制控件时),此选用板才会处于活动状态。该选用板包含 UI 控件的抽屉:核心控件容器控件。如果您已向当前 IBM Domino Designer 应用程序添加了任何定制控件,那么该选用板还会包含容纳这些控件的抽屉。

抽屉是一种嵌入式窗格,允许您通过使用每个抽屉开头和结尾的向上向下箭头在各选项之间滚动。

您还可以对选用板及其抽屉执行以下操作:
  • 要隐藏选用板,请关闭该选用板。
  • 要更改选用板属性,请右键单击并进行选择。
  • 要展开或折叠抽屉,请单击该抽屉。
数据选用板
允许您查看与 XPage 编辑器中所选 XPage 或控件相关联的数据源。要显示“数据”选用板,请单击窗口 > 显示 Eclipse 视图 > 数据选用板

从“控件”选用板和“数据”选用板拖放时,请记住以下信息、限制和准则:

  • 可以将控件添加到除视图面板之外的所有容器控件。
  • 不能向除链接控件之外的核心控件添加控件。这是因为链接控件可以包含子代,因此它在这一点上类似于容器控件。如果您尝试向核心控件添加控件,那么新控件将添加到现有控件上方的页面。
  • 在“源”选项卡上,可以通过将控件拖动到容器控件的开始或结束标记,或当焦点位于开始或结束标记上时双击或使用创建菜单,将控件设为容器控件的第一个或最后一个子代。
  • 可以仅向表中的单元格而不是向行或表容器本身添加控件。
  • 您可以向数据表中的列添加控件。一旦您在“源”选项卡上创建了控件,就可以添加定义为数据表(或数据表列)页眉或页脚的容器控件。要将控件定义为页眉或页脚,请将其添加到数据表或列的 xp:this.facets 元素中。
  • 您只能向选项卡式面板中的选项卡添加控件,而不能向面板本身添加控件。
  • 如果您将控件拖动到“源”选项卡上的选项卡式面板的结束标记,或者在焦点位于结束标记上时双击或使用创建菜单,那么该控件将添加到选项卡式面板中的最后一个选项卡。
  • 只有为已添加到 Xpage 的定制控件定义了可编辑区域时,才能向该定制控件添加控件。如果该可编辑区域有一个构面名称,那么只能添加一个控件;如果除去构面名称,就可以添加多个控件。
  • 不能向嵌套在其他定制控件中的定制控件添加控件。
  • 在将数据源从“数据”选用板拖至页面时,您可以在这些源插入到该页面上之前对其重新排序。在“数据”选用板顶部,单击“选择控件”图标,然后选择“选择数据绑定控件”。使用方向键可将数据源拖动到页面。

您可以创建“控件选用板”概要文件,可通过这些概要文件来选择在“控件选用板”上显示的控件及其顺序。您可以根据不同的可切换控件选用板布局,创建多个选用板概要文件。要访问选用板概要文件设置,请转至文件 - 首选项 - Domino Designer - 选用板。以下列表提供了有关使用“控件选用板”概要文件的其他信息:

  • 缺省情况下,将创建名为 Profile1 的初始概要文件。这是包含第一次启动 Designer 时的选用板当前状态的概要文件。如果使用旧的“Designer 选用板首选项”页面修改了选用板,那么 Profile1 中将反映这些更改。您可以从选用板概要文件用户界面重命名并删除 Profile1。
  • 用户界面具有一个概要文件列表,以及显示控件抽屉和这些抽屉中的控件的树。树显示概要文件列表中所选概要文件的选用板布局。 您可以选中希望在选用板中显示的控件/抽屉,并取消选中不希望显示的控件/抽屉。您还可以将个别控件从其父抽屉中除去,但不能在抽屉之间移动控件。
  • 您还可以对抽屉重新排序。然而,本发行版中控件选用板不支持控件抽屉的重新排序。定制控件从不在树中显示,而且总是位于控件选用板中。
  • 在您单击新建以创建新概要文件时,新概要文件选用板布局将基于概要文件列表中当前选中的概要文件。缺省情况下,活动概要文件将在概要文件列表中选中。要切换概要文件,只需选择要激活的概要文件并单击“应用”或“确定”。
  • 要将所选文件恢复为缺省概要文件,请单击“恢复缺省值”。恢复缺省概要文件不会删除创建的概要文件。
  • 如果删除概要文件列表中的所有概要文件,会重新创建 Profile1,其选用板布局与缺省布局相匹配。

视图

视图是 Eclipse 中允许您查看和处理应用程序各个方面的面板。可以使用以下视图:

事件视图
允许您为 XPage 和控件创建事件。可以使用“事件”视图将简单操作或脚本附加到事件。事件组织成类别以便于访问。

编写脚本时,可创建服务器端事件或客户端事件。可指定在事件发生后更新 XPage 的选项,包括基于异步 JavaScript 和 XML (AJAX) 技术对部分 XPage 元素执行部分更新。

编写简单操作时,可编写执行预编程活动(可通过参数进行修改)的操作。还可以创建简单操作组。

大纲视图
提供了 XPage 中 XML 源代码的分层表示法。可以单击“大纲”视图中的各个节点以浏览 XPage,并更新“属性”视图中的属性。还可以拖放元素以重新安排各个区段并更改元素的顺序。
问题视图
显示有关 IBM Domino Designer 资源的错误、警告和其他信息。这些消息是在构建 Eclipse 工作空间时生成的。例如,如果保存包含语法错误的 XPage,那么“问题”视图将显示这些错误。
属性视图
允许您设置 XPage 和控件的属性。“属性”视图与当前打开的编辑器进行交互。例如,如果您正在设计某个 XPage,并且将焦点移动到该 XPage 中的某个特定 UI 控件,那么该 UI 控件的属性将在“属性”视图中变得可用。

“属性”视图位于 IBM Domino Designer 窗口的底部,并且包含多个单独的选项卡,可单击各个选项卡以显示一组选项。由于每个 XPage 和 UI 控件都有其自己特有的属性集,因此这些选项卡以及其中的选项随当前所选择的内容而变化。例如,当查看 XPage 的列表时,如果单击某个 XPage 的名称,那么“属性”视图将显示有关该 XPage 的常规信息,如 XPage 的名称、作者和创建日期。如果双击 XPage 的名称,该 XPage 将以编辑方式在 IBM Domino Designer XPages 编辑器中打开,并且一组新的选项卡将出现在“属性”视图中。这些选项卡根据编辑器中当前所选择的内容(例如,选择的是整个 XPage 还是个别 UI 控件)而变化。

您可以使用“属性”标题栏中的按钮来最小化、最大化和恢复视图。您可以右键单击“属性”选项卡来执行以下任务:
  • 隐藏视图
  • 最小化和最大化视图
  • 将视图拆离为单独的窗口
  • 恢复最小化或最大化的视图

获取信息

获取信息的最直接资源是已安装的帮助系统。其他资源包括信息中心、Domino Designer wiki 以及各种 Web 站点上的文章。

要从 Domino Designer 或 Notes 访问帮助,请单击帮助 > 帮助内容。通常情况下,最简单的访问方式是搜索。以下是一些提示:
  • 输入完整单词。大小写没有关系,但单词必须完整。例如,如果您要查找 createFTIndex 方法,您可以输入 createftindex,但不能输入 createftinde
  • 搜索结果可能会显示重复或相似的标题(尤其是对于引用主题)。将鼠标悬浮在标题上时,会显示弹出窗口,向您告知其书的名称。状态行中也将出现此信息。
  • 如果您频繁使用帮助的某一部分,您应为其设置搜索作用域。请参阅引用的任务。
单击 F1 将会在右侧的窗格中显示补充帮助系统。其中有些资料实际上是摘要。您可以使用链接,或单击页面底部的搜索所有主题,来浏览到更完整的文档。

随产品一起安装的相同帮助在 Notes Domino 信息中心 (http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp) 中提供。

请转至 Domino Designer wiki (http://www.lotus.com/ldd/ddwiki.nsf) 以获取文章、论坛和其他信息。您可以在此 wiki 上进行发布。

使用 Google 或其他 Web 产品可将您的搜索扩展到帮助以外的内容。请在搜索查询前面加上 domino designer。例如,要获取关于 createFTIndex 方法的信息,可以输入 domino designer createftindex 作为搜索查询。

有关 XPage 的实用介绍,请使用此帮助中的教程。此教程使用名为 Site finder demo 的高级模板。

设置搜索作用域

搜索作用域可限制所搜索的帮助主题。

关于此任务

缺省情况下,将会搜索帮助中的所有主题。执行以下步骤可创建命名作用域,来将搜索限制于特定的主题。

过程

  1. 在搜索窗口上,单击搜索作用域
  2. 选择搜索作用域对话框中,选择仅搜索以下主题并单击新建
  3. 新建搜索列表对话框中,输入要搜索的名称。
  4. 选中要搜索的帮助部分。您可以选中起始级别和下一级别的主题。
  5. 单击确定保存此作用域,然后关闭新建搜索列表对话框。

    选中仅搜索以下主题时,新作用域将会出现在作用域列表中。

    您可以创建其他作用域。

    您可以编辑或除去所选的作用域。

  6. 单击确定关闭选择搜索作用域对话框。
  7. 有效的作用域将会出现在搜索作用域旁边。要更改作用域:
    1. 单击搜索作用域打开选择搜索作用域对话框。
    2. 选择仅搜索以下主题,然后选择作用域,或选择搜索所有主题
    3. 单击确定

示例

例如,如果要要仅针对 Domino Designer 主题创建搜索作用域:在新建搜索列表对话框中,将作用域命名为 Designer,并勾选以 Lotus Domino Designer 开头的所有顶级主题。

辅助功能选项和键盘快捷键

Domino Designer 为行动有障碍或视力不佳的人士提供某些辅助功能。

IBM Domino Designer 为行动有障碍或视力不佳的人士提供某些辅助功能。

特别是,Domino Designer 提供

  • 键盘快捷键,使您能够在 Domino Designer 中导航并执行各种任务。
  • 扩展加速键,使您能够使用键盘在书签栏和窗口选项卡中导航。 扩展加速键必须先启用,然后才能使用。

有关更多信息,请参阅产品帮助系统中《Domino Designer 基本用户指南和参考》的“辅助功能选项和键盘快捷键”部分。在该处可找到有关任务相关键盘快捷键的各种主题。

在 IBM Notes 和 Domino 信息中心 (http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp) 内可找到完整产品帮助的支持辅助功能选项的版本。

在 Notes 帮助的“针对辅助功能选项定制 Notes”主题中还可找到更多信息。如果未安装帮助,那么还可以访问位于 http://www.lotus.com/ldd/doc 的 IBM Developer Domain 的文档库,以下载或查看 Notes 帮助。

最后,可以访问位于 http://www.ibm.com/able 的 IBM 特殊需要 Web 站点。

教程

本部分包括教程和关于教程的信息。

本部分中当前可用的教程是 XPages Site Finder 教程。请参阅本部分中的其余主题以获取更多信息。

XPage Site Finder 教程

本教程演示了在 IBM Domino Designer 中使用 XPage 元素创建 Web 应用程序的便利性。您可以使用本教程创建和预览三个 XPage。在该 XPage 上放置控件以访问和查看数据、浏览至其他页面、刷新同一页面并执行其他操作。您甚至将用到 JavaScript。

熟悉 Domino Designer 和传统设计元素很有帮助,但并非必要。一些超出您知识范围的设计元素和图形将预先装入。对于那些 Eclipse 的新功能,在 Domino Designer 中导航提供了完整的简介。

名为 Site Finder Demo 的演示应用程序是与 Domino Designer 一起交付的高级模板。它与许多 Web 站点上用于查找相邻位置的工具相似。您可以提交邮政编码或地址,以使服务器返回匹配的场所。在本教程中,您可以开发 Web 页面进行提交,也可以开发其他页面创建和编辑站点文档。

出于简易性考虑,不限制访问。所有人都能创建和编辑文档。此访问权使您能够预览 XPage 功能,而不必设置服务器。对于实际的应用程序,您若希望限制访问,只需通过访问控制表 (ACL) 即可轻松完成。从菜单,单击文件 > 应用程序 > 访问控制

演示应用程序中的搜索机制很简单,只是基于完全匹配。在实际应用程序中,可能需要更为复杂的机制。

本文档引用了以下产品:IBM Domino、IBM Domino Designer、IBM Notes、IBM iNotes 和 IBM Notes Traveler。

学习目标

  • 设置和查看包含 XPage 元素的应用程序
  • 创建 XPage
  • 向 XPage 添加控件
  • 向 XPage 绑定数据
  • 向 XPage 添加导航
  • 创建定制控件
  • 使用高级绑定和脚本编制

所需时间

本教程需要大约 90 分钟完成。

设置样本应用程序

在本教程期间,您将创建三个名为 Site、SiteFinder 和 SiteList 的 XPage。当您首次打开样本应用程序时,会看到具有相似名称的现有 XPage。其中三个是最终解决方案,名为 SiteFinal、SiteFinderFinal 和 SiteListFinal。其中两个是中间解决方案,名为 Site1 和 SiteList1。

启动 IBM Domino Designer,并执行以下步骤:
  1. 从菜单中单击文件 > 应用程序 > 新建 (Ctrl+N)。
  2. 在“新建应用程序”窗口中,执行以下步骤:
    1. 将“服务器”选项保留为本地
    2. 输入标题,例如 Site Finder Demo
    3. 接受或修改文件名,例如 SiteFinderDemo.nsf
    4. 可选: 单击加密。选择不在本地加密该数据库,并单击确定

      此步骤允许其他 Notes 用户本地访问应用程序,例如,如果您要将其以邮件形式发送给其他人。一般而言,您应该加密实际应用程序,以确保其安全。本地加密无法防止通过复制而将应用程序共享给某个服务器。

    5. 选择创建全文索引以供搜索。稍后您会需要此索引。
    6. 将模板服务器选项保留为本地
    7. 选择显示高级模板
    8. 在模板列表中,选择 Site Finder Demo
    9. 清除继承将来的设计更改
    此处是“新建应用程序”窗口应有的外观。

    新建应用程序窗口

  3. 单击确定

    Domino Designer 会创建新的应用程序,并在屏幕左侧的应用程序下显示其元素。展开这些元素,以浏览该应用程序的设计。

  4. 展开代码,并双击代理。在代理列表中,右键单击创建样本数据,并选择运行

    此代理将创建多个样本记录,用于测试应用程序。回复所有对话框。单击角落的 X 以关闭包含代理程序列表的窗格。

  5. 展开 XPage,并双击 SiteFinderFinal(SiteFinder 的最终解决方案)。
  6. 单击设计 > 在 Web 浏览器中预览 > 缺省系统 Web 浏览器,或从所列的浏览器中选择一个特定的浏览器。

    在您计算机上运行的小型 Web 服务器将打开浏览器,为 XPage 生成 HTML,并将页面发送给使用 localhost 作为服务器名称的浏览器。

    如果计算机未设置为使用 localhost,那么预览 URL 将失败。打开浏览器并在 URL 中使用 127.0.0.1 或您计算机的实际 IP 地址,例如 http://127.0.0.1/SiteFinderDemo.nsf/SiteFinderFinal.xsp

  7. 邮政编码字段中指定一个值(例如 02108),并单击搜索

    该步骤将把页面提交给服务器。 服务器将处理页面的信息,并将另一个页面发送给客户端。

  8. 完成后关闭浏览器。
  9. 在 Domino Designer 中,单击 XPage 元素选项卡上的 X 将其关闭。

    外观会有所不同。如果窗格有多个选项卡,您将在各选项卡上看到一个 X。如果某个窗格只有一个选项卡,它将显示为在角落带有 X 的窗口。

请随意预览名称中有 Final 字样的 XPage,以浏览应用程序。这些 XPage 是您遍历本教程时设计内容的最终版本。

创建 XPage

本课程将指导您如何创建基本的 XPage。

本课程会用到一张表单和一个视图,但不会指导您练习创建它们。Site 表单包含用于存储站点信息和搜索条件的字段,而 SiteList 视图用于显示站点和搜索结果的列表。请快速浏览一下这些内容。有关表单和视图的文档,请参阅帮助中的《Domino Designer 基本用户指南和参考》。
  • XPage 将使用表单来定义在文档中存储哪些数据,而不是如何显示这些数据。此定义类似于在显示表单上使用隐藏字段,以组织和计算数据。Site 表单包含用于创建文档的数据字段,以及一些说明文本。用户永远看不到内容,因此布局如何并没有关系。
  • XPage 可使用视图来定义文档集及其顺序。与您只使用视图对某些数据编制索引,以便能够以程序化方式对其进行寻址非常类似,SiteList 视图可用作到数据文档的索引。该视图列出按站点名称排序的所有文档的内容。视图是一种用来组织文档的强有力方法,通常可具有多个视图来显示不同的子集和排序顺序。

确保应用程序已展开,并执行以下步骤:

  1. 双击 XPage

    此操作将在中间窗格中显示 XPage 元素的列表。

  2. 单击新建 XPage
  3. 命名新的 XPage SiteList。(会自动采用并添加 .xsp 扩展名。)

    可以在名称中使用空格,但不使用的话会使名称更加清晰。

  4. 单击确定 在中间窗格中创建了空的 XPage 设计元素。
  5. 将标题图形放在页面上:
    1. 核心控件,选择图像并将其拖动到 XPage 上。 此时会显示“选择图像”窗口。
    2. 选择 xpTitlebarLeft_ren.gif

      选择图像”窗口与此截屏类似。

      “选择图像”窗口

    3. 单击确定

    您在截屏中看到的图像已预先装入。在列表上看到的每个图像都是当前数据库中的一个资源。添加按钮使您能够导入其他图像(且也可以通过其他方法导入图像)。

    单击确定后,图像应作为标题显示。

  6. 单击标题图像右侧的空白空间,或按向右箭头以按该方向移动。如果该空间不可视,您可能必须按该方向滚动。按 Enter 键,使光标转至下一行。
  7. 输入一些标题文本:
    1. 在 XPage 上,单击标题下的空白行。
    2. 输入站点列表,然后按 Enter 键。
    3. 突出显示文本行。
    4. 在底部窗格中,单击字体并根据需要更改字体,例如,更改为 14 号蓝色粗体。
    稍后,您可以添加样式表并将其应用到此文本,以另一种方式来控制格式化。
XPage 的设计与此截屏类似:

SiteList XPage

有经验的 Web 开发者可能希望使用可结构化文档的元素,如 H1H2。设计用户界面不支持此结构,但源用户界面允许您根据需要输入 XML。单击选项卡,以查看页面并将其编辑为 XML。单击设计选项卡,以返回教程中。

添加视图控件

XPage 视图控件用于显示已定义的视图的信息。在本课中创建的控件使您能够显示 SiteList 视图的数据。

确保 SiteList XPage 在居中窗格中打开,并执行以下步骤:
  1. 容器控件中,选择视图并将其拖动到 XPage 上。
  2. 在“选择视图的数据源”窗口中:
    1. 显示数据来源的设置保留为 Domino 视图
    2. 应用程序的设置保留为当前

      您可以选择任何 Domino 应用程序,但除非该应用程序在运行时服务器上可用,否则视图控制将不起作用。

    3. 视图下拉列表中,选择 SiteList。
    4. 接受 view1 作为数据源名称。

      此名称可在服务器端 JavaScript 代码中使用。

    5. 在结尾的列列表中,将 SiteNameStreetAddressCitySiteType 保持选中。

    该窗口看起来与此截屏类似。

    “选择视图的数据源”窗口

  3. 单击确定

    显示代表视图的表格。四个列均代表视图列,两个行分别代表列标题和列内容。第一行包含的分页器控件允许用户浏览视图中的数据。

  4. 调整视图控件:
    1. 要调整列的大小,请单击第一行中的单元格,然后在单击第二个单元格的同时按 Shift 键,以选中一个列中的两行,然后拖动任一单元格上的控点。
    2. 通过单击第一个单元格,然后在单击行中剩余单元格的同时按 Shift 键,可选择整个标题行。按 Ctrl+B 或使用字体属性,以使这些单元格变为粗体。
  5. 允许用户在视图控件的第一列中单击文档时将其打开:
    1. 在结尾处 (SiteName) 的左侧单元格内单击。
    2. 在底部窗格的属性选项卡中,单击显示
    3. 选择将该列中的值作为链接显示

    该页面看起来与此截屏类似。

    带有视图控件的 SiteList XPage

  6. 将视图控件链接到编辑页面。
    1. 单击视图控件,以使焦点位于整个视图中。
    2. 在底部窗格的属性选项卡中,单击视图
    3. 从结尾的在运行时,使用以下项打开选择的文档下拉列表中,选择 Site1。
  7. 保存并预览页面。
    1. 单击实际 XPage 本身,以使焦点位于该页面本身。

      使焦点位于页面上的另一种方式是,单击一侧窗格中的大纲 > 根文档 > XPage。此操作可将焦点放在页面本身。可以单击大纲中的相应元素,以将焦点放在页面的特定设计元素上。

    2. 按 Ctrl+S 以保存页面。
    3. 单击设计 > 在 Web 浏览器中预览 > 缺省系统 Web 浏览器或您选择的浏览器。 在列表中单击某个文档。该文档将使用 Site XPage 打开。您可以通过此窗口对文档进行更改,然后单击提交进行保存。提交页面不会使您从该页面跳出,您可以继续编辑和保存同一个的文档。
      保存更改和刷新浏览器有以下几种方法:
      • 在本教程中使用的提交按钮将更新数据源并刷新页面。
      • 按钮按钮允许您向 onclick 事件附加简单操作或 JavaScript。使用此事件可以更新数据源,并将用户重定向到其他页面。
      • 页面事件允许您向 postSaveDocument 事件附加简单操作或 JavaScript。您可以在页面上放置提交按钮,并在 postSaveDocument 事件中将用户重定向到其他页面。

      您的 XPage 与 SiteList1 类似,可以打开进行比较。

  8. 关闭浏览器。

创建 XPage 进行编辑

您也可以使用表单来设计 Web 页面,但 XPage 支持更多的 UI 选项,并且能够更轻松地提供更好的外观控制。不过,此外再拥有一个表单也会非常有用,它能够提供用于绑定数据的字段列表。该表单还可用于利用字段公式来计算字段,而不是在 XPage 上放置代码。

在本课程中,您将了解如何向页面添加文本、向页面添加控件、使用样式表调整页面的外观,以及将数据源绑定到页面。有很多步骤,但一次只能执行一个。

请执行以下操作:

  1. 在 XPage 列表的开头处,单击新建 XPage。或者,您也可以右键单击 XPage > 新建 XPage
  2. 命名新的 XPage 站点,然后单击确定。XPage 名称和表单名称不必相同,但比较好的做法是使用相同的名称。如果它们的名称相同,就会启用此教程中未提及的一些自动行为。
  3. 按如下方式向页面添加样式表:
    1. 在结尾窗格中,单击样式
    2. 滚动到结尾并单击向页面添加样式表
    3. 向页面添加样式表框中,选择 styles.css
    4. 单击确定
    这些 CSS 文件是样本应用程序中包含的样式表设计元素。
  4. 为页面添加标题并按如下方式设置样式:
    1. 在 XPage 上,输入页面的标题(例如,站点说明),然后按 Enter 键。
    2. 突出显示文本。
    3. 在最底部窗格上,单击样式(如果尚未在其中)。
    4. styles.css 下的列表中,单击 .title
    文本的外观将更改,以与所选的样式保持一致。
  5. 将 XPage 与 Domino 后端数据存储相关联(绑定),如下所示:
    1. 单击 XPage 上文本的外部,以将焦点放在页面本身。
    2. 属性下的底部窗格上,单击数据
    3. 单击添加,然后选择 Domino 文档

      此时将显示名为 document1 的数据源。

    4. 在窗格的一侧,找到表单,然后从下拉列表中选择站点

      此操作会将 XPage 与站点表单上的数据定义相关联。

  6. 按如下方式设置数据选用板:
    1. 在窗格底部,单击数据选用板链接。 在一侧窗格中会显示数据选项卡。也可以通过单击窗口 > 显示 Eclipse 视图 > 数据来显示“数据”选项卡。
    2. 数据选项卡上,针对数据源选择 document1。您必须将焦点放在 XPage 上,才能在数据选用板中显示新的数据源。

      数据源的字段名称和类型将显示在数据源名称下方。

    3. 数据选项卡的左上角,单击选择控件对话框的图标以启用它。

      选择控件对话框的图标类似于:

  7. 从数据选用板选择所有字段,并将其拖动到 XPage 上的标题下方。

    此时会打开选择数据绑定控件对话框。

  8. 按如下方式填写对话框:
    1. 选中所有复选框,以表明希望包含这些字段。
    2. 所有标签文本保持原状。
    3. 选择站点类型并使用下拉菜单,将其控件类型更改为组合框
    4. 康乐场所的控件类型更改为列表框
    5. 方向的控件类型更改为多行编辑框
    6. 选中向生成的代码添加提交按钮
    7. 选中向生成的代码添加消息控件

    对话框应类似于:

    “选择数据绑定控件”对话框

  9. 单击确定

    这会创建一个两列的表,其中,标签位于第一列中,控件位于第二列中。第二列还包含用于显示验证错误的区域和提交按钮。

  10. 将焦点放在 SiteType 字段上并进行如下调整:
    1. 单击结尾窗格中属性下的数据,然后输入 Office 作为缺省值。
    2. 要为站点类型添加其他选项,请单击属性后的。单击添加项三次。选择各个项并将其标签从 Untitled 更改为 OfficeRetailRestaurant

      您无需输入任何,除非存储的值与显示的值不同(此处的情况并非如此)。

  11. 将焦点放在 Amenities 字段上并进行如下调整:
    1. 单击结尾窗格中属性下的列表框,然后选中允许多个选择
    2. 单击属性下的。单击添加项四次。选择每个项并将其标签从 Untitled 更改为 CafeteriaFitness CenterVisitor CenterExecutive Briefing Center
    3. 单击位于单元格内但在标签控件 (“Amenities:”) 外的列 1。单击属性下的表单元格,然后针对单元格垂直对齐选择置顶

      此操作将在单元格开头处对齐标签。

    如果您希望使用 Amenities 的复选框,可以除去“列表框”并从“控件”选用板拖动“复选框组”。通过单击属性下的数据,并从绑定至下拉菜单中选择 Amenities,绑定此复选框组。按照上述步骤 11,在选项卡上输入值。

    同时存在 CitysearchCity 字段的原因是允许搜索不同于实际站点名称的城市。例如,其中一个样本站点位于 Brighton(Boston 的郊区)中,因此在搜索时我们称其在 Boston。然而,对于国家或地区,我们将假设实际国家或地区与搜索的国家或地区相同。

    您的 XPage 应该与此类似。

    站点说明 XPage

    此时,您的 XPage 应类似于 Site1,可以打开进行比较。

  12. 对表进行调整,以便包含提交按钮的行在页面不可编辑时隐藏。您将需要一些 JavaScript。
    1. 单击包含提交按钮(单元格,而非按钮)的表单元格。
    2. 在底部窗格的属性下,单击表单元格(如果尚未选中)。
    3. 单击可视旁的菱形,然后单击计算值 此时将打开脚本编辑器。
    4. 在脚本编辑器中,双击全局变量列表中的 document1,然后输入点号。

      全局变量 document1 是一个类型为 NotesXspDocument 的对象,用于表示 XPgae 正在查看的当前文档。当您输入句点时,将显示该对象适用的方法列表。

    5. 在方法列表中,滚动到结尾并双击 isEditable()
      如果文档可编辑,此操作将返回 true,否则返回 false。公式应与以下类似:
      document1.isEditable()
    6. 单击确定

      脚本编辑器将关闭,同时保存您的代码。

    如果返回值为 false,此代码将隐藏包含按钮的单元格。您也可以隐藏按钮,而不是单元格。
  13. 在 XPage 上,单击任何控件的外部,以将焦点放于页面上,然后按 Ctrl+S 以保存页面。
  14. 单击设计 > 在 Web 浏览器中预览 > 缺省系统 Web 浏览器(或选择其他浏览器)。 您可以输入值并单击提交,以测试应用程序。此操作应在数据库中输入一个新文档。要查看文档列表,请使用 Notes 客户端。完成后关闭浏览器。

    此时,您的 XPage 应类似于 SiteFinal,可以打开进行比较。

  15. 单击居中窗格右上方的 X,以关闭 Site XPage。

创建控件以添加和删除文档

SiteList XPage 使您能够查看和编辑应用程序中的文档,但我们需要添加控件才能创建和删除文档。

请执行以下操作:
  1. 在 SiteList XPage 上,在第一列(是列,而不是列头)内单击,使其获得焦点。
  2. 属性下,单击显示
  3. 选中复选框 这会将复选框置于每行的行首。用户可以通过选中复选框来选择相应的行。
  4. 在 XPage 上,单击标题结尾并按 Enter 键可在标题与视图控件之间放置空行。
  5. 如果右侧窗格中没有控件列表,可单击控件选项卡或单击窗口 > 显示 Eclipse 视图 > 控件
  6. 按钮控件拖动到标题下的空行内,并执行以下操作:
    1. 在底部窗格的属性下,单击按钮(如果它还未获得焦点)。
    2. 将标签更改为新站点
    3. 单击事件选项卡。
    4. 确保选中了 onClick 事件。
    5. 单击添加操作 这时将打开添加简单操作对话框。类别应该是所有,而操作应该是打开页面。若不是这样,请进行调整。
    6. 针对要打开的页面的名称,选择站点
    7. 针对目标文档,选择新建文档
    对话框看起来应该与此相似。

    添加简单操作对话框

  7. 单击确定
  8. 将第二个按钮控件拖动到第一个旁边,并执行以下操作:
    1. 在底部窗格上,单击属性选项卡,并单击按钮(如果它还未获得焦点)。
    2. 将标签更改为删除所选项
    3. 单击事件选项卡。
    4. 确保选中了 onclick
    5. 单击添加操作
    6. 针对类别,选择文档
    7. 针对操作,选择删除所选文档
    8. 针对视图名称,选择 viewPanel1

      如果这不是您视图控件的名称,请选择您的视图控件。

    9. 针对确认文本,输入确定要删除选中的站点吗?

    对话框看起来应该与此相似。

    添加简单操作对话框

  9. 单击确定
  10. Ctrl+S 保存页面。
  11. 根据需要预览页面。
  12. 单击居中窗格右上方的 X,以关闭 SiteList XPage。
此时,您的 XPage 应该类似于 SiteListFinal,您可以打开此页面进行比较。

创建 XPage 进行搜索

用户可以使用此页面来指定搜索参数并查看结果。搜索参数是市/县/区、省/州、国家或地区和邮政编码的值。用户可以填写其中任一参数,并单击按钮。页面即会刷新,并以视图形式显示结果。视图的搜索属性将显示限制为匹配搜索参数的文档。

请执行以下操作:
  1. 在 XPage 列表的开头处,单击新建 XPage。或者,您也可以右键单击一侧窗格中的 XPage > 新建 XPage
  2. 命名新的 XPage SiteFinder,然后单击确定
  3. 从右窗格中的定制控件下,将标题定制控件拖到 XPage 上。

    此图像与放在 SiteList XPage 上的图像相同,但已将其放在定制控件中,以便于维护。定制控件类似于子表单。

  4. 按如下方式向页面添加样式表:
    1. 单击实际页面而非控件,以使焦点位于页面上。
    2. 在底部窗格的属性下,单击样式
    3. 滚动到结尾并单击向页面添加样式表
    4. 向页面添加样式表框中,选择 styles.css
    5. 单击确定
  5. 按如下方式添加标题:
    1. 在 XPage 上,按页眉后的 Enter 键,输入页面标题(例如,站点查找程序),然后再按 Enter 键。
    2. 突出显示文本。
    3. 在底部窗格上,单击样式(如果尚未在该处)。
    4. styles.css 下的列表中,单击 .title
    文本的外观将更改,以与所选的样式保持一致。
  6. 在标题文本下,输入用户的指示信息(例如,填写任一或所有这些字段,并单击“搜索”),然后按 Enter 键。
  7. 按如下方式创建有四个行和两个列的表:
    1. 从右窗格中的容器控件,将指示信息下的拖到 XPage 上。

      此时会显示插入表格对话框。

    2. 插入表格对话框中,指定 4 作为行数,2 作为列数。
    3. 单击确定
    4. 使用抓取柄调整表的宽度。
  8. 针对列 1 中的各个单元格执行以下操作:
    1. 从右窗格中的核心控件,将标签拖到单元格内。
    2. 在底部窗格中,将控件的标签更改为市/县/区(行 1)、州/省(行 2)、国家或地区(行 3)或邮政编码(行 4)。
  9. 针对列 2 中的各个单元格执行以下操作:
    1. 从一侧窗格中的核心控件,将编辑框拖动到单元格内。
    2. 在底部窗格的属性下,单击编辑框
    3. 将名称更改为 searchCity(行 1)、searchState(行 2)、searchCountry(行 3)和 searchZip(行 4)。
    4. 在底部窗格的属性下,单击数据
    5. 对于绑定数据使用方式,单击高级
    6. 使用下拉菜单中,选择作用域变量
    7. 参数列表框中,选择会话作用域
    8. 滚动到结尾并输入变量名称 searchCity(第 1 行)、searchState(第 2 行)、searchCountry(第 3 行)或 searchZip(第 4 行)。
    通过将这些编辑框绑定到作用域变量,我们可以在 JavaScript 代码中而不是在数据存储中访问它们的值。会话变量将按服务器上用户会话的持续时间在各页面中保留其值。
  10. 执行以下操作来创建用于提交和刷新页面的按钮:
    1. 从一侧窗格中的核心控件,将按钮拖动到表下方的行内。
    2. 在底部窗格中,将控件的标签更改为搜索
    3. 从按钮类型下拉列表中,选择提交
    单击此按钮会将页面提交到服务器,并根据用户输入的值刷新页面的内容。
  11. 执行以下操作来显示用于获取结果的查询:
    1. 在 XPage 的下一行上,输入查询字符串:和一个空格。
    2. 从右侧的核心控件,将计算的字段拖动到页面上。
    3. 在底部窗格的属性下,单击字体。将颜色更改为蓝色。
    4. 在底部窗格的属性下,单击
    5. 对于绑定数据使用方式,单击高级
    6. 使用下拉菜单中,选择作用域变量
    7. 参数列表框中,选择会话作用域
    8. 滚动到结尾并输入变量名称 queryString

      变量名称可自行选择,无特殊含义。您稍后可对其指定值。

    此操作允许我们显示稍后计算的查询。该显示在生产应用程序中可能没有必要,但对于测试非常有用。
  12. 从一侧窗格中的容器控件,将视图拖动到页面的下一行上。
    1. 显示数据来源的设置保留为 Domino 视图
    2. 应用程序的设置保留为当前
    3. 视图下拉列表中,选择 SiteList
    4. 接受 view1 作为数据源名称。
    5. 在结尾的列列表中,取消选中除 SiteNamePhoneStreetAddressCityState 之外的所有项。 可以更改此项并选择要显示的列,但必须包含 SiteName
    6. 单击确定
  13. 在底部窗格的属性下,单击视图。对于运行时,使用以下项打开选择的文档,选择站点
  14. 在底部窗格的属性下,单击数据。确保将视图设置为 SiteList
  15. 现在可以设置搜索查询,以将视图限制为那些可满足用户在搜索字段中所输入内容的文档。请执行以下操作:
    1. 在底部窗格的属性下,单击所有属性
    2. 滚动到末尾。展开数据,然后展开第二次出现的数据。选择搜索属性。

      您的屏幕应与此类似。

      搜索属性

    3. 单击搜索属性旁边的菱形,然后选择计算值

      此时将打开脚本编辑器。

    4. 在脚本编辑器中输入以下代码。确保语言是服务器端的 JavaScript 并已设置动态计算
      var tmpArray = new Array("");
      var cTerms = 0;
      if(sessionScope.searchZip != null & sessionScope.searchZip != "") {
      	tmpArray[cTerms++] = "(FIELD SearchZip = \"" + sessionScope.searchZip + "\")";
      }
      if(sessionScope.searchCity != null & sessionScope.searchCity != "") {
      	tmpArray[cTerms++] = "(FIELD SearchCity = \"" + sessionScope.searchCity + "\")";
      }
      if(sessionScope.searchState != null & sessionScope.searchState != "") {
      	tmpArray[cTerms++] = "(FIELD SearchState = \"" + sessionScope.searchState + "\")";
      }
      if(sessionScope.searchCountry != null & sessionScope.searchCountry != "") {
      	tmpArray[cTerms++] = "(FIELD Country = \"" + sessionScope.searchCountry + "\")";
      }
      qstring = tmpArray.join(" AND ").trim();
      sessionScope.queryString = qstring; // this just displays the query
      return qstring // this is what sets the search property

      您可能无法完成整个练习,但可将此代码放在功能表单和脚本库中。然后,脚本库将作为资源添加到页面,通过简单引用即可访问功能。这样可允许通过集中维护在多个位置使用该代码。

    5. 单击确定
    此代码通过使用绑定到这些编辑框的会话作用域变量,获取用户在页面上输入的值。代码将构建并返回与字段 searchZipsearchCitysearchStateCountry 中的文档值相匹配的查询字符串。

    为了清晰起见,我们将使用与所搜索文档中相同的字段名称,但是也可以使用任何名称。

  16. 调整第一列,以允许用户以读方式打开文档:
    1. 在 XPage 上,单击视图的第一列内部。
    2. 在底部窗格的属性下,单击显示
    3. 选中将该列中的值作为链接显示
    4. 对于文档打开方式,单击只读

    对于查看搜索结果的 Web 用户,在跟随链接时不能编辑找到的文档。在实际应用程序中,也可以使用访问控制表。

  17. 保存更改,并预览新的搜索屏幕。
  18. 根据需要预览页面。尝试某些搜索,例如:0210833432(表示邮政编码);Boca RatonBoston(表示市/县/区);MA(表示州/省);France(表示国家或地区)。
  19. 单击居中窗格右上方的 X,以关闭 SiteFinder XPage。
此时,您的 XPage 应类似于 SiteFinderFinal,可以打开进行比较。

此处显示的过程并不一定是组织搜索功能的最佳方式,但的确可行。您也可以从搜索按钮中的 JavaScript 代码指定数据源的搜索属性。这样更便于在页面上使用多种查询信息源,可以针对不同的搜索类型设有多种搜索按钮。

此外,还提供了其他控件,以便更好地格式化结果。例如,数据表对于设置搜索结果布局的方式提供了更为有力的控制,并且通常用于代替视图。不过,视图控件使用起来非常简单。

管理应用程序

IBM Domino Designer 提供了用于在开发应用程序项目时管理您的工作和相关文件的功能。

当前主要功能源控件支持允许您将基于 NSF 的设计元素存储到源控件存储库,并使用 Domino Designer 执行常见源控件操作。该功能通过允许您在由源控件管理的磁盘项目与 Domino Designer 跟踪的基于 NSF 的虚拟项目之间创建关联,从而实现此操作。

提供此功能是为了允许您尽可能无缝地将 SVN 源控件客户端与 Domino Designer 集成,并使 Domino Designer 尽可能多地保持“与源控件系统无关”。

本文档引用了以下产品:IBM Domino、IBM Domino Designer、IBM Notes、IBM iNotes 和 IBM Notes Traveler。

Domino Designer 中的源控件

源控件操作可用于 Domino Designer。本部分提供了使用支持此功能的源控件支持功能所需的所有信息。

源控件支持

引入了源控件支持功能,以允许您将基于 NSF 的设计元素存储到源控件存储库,并使用 Domino Designer 执行常见源控件操作。

基于 Eclipse(即,开放式源代码)的源控件客户端(例如,SVN 和 CCRC)处理物理文件。因此,它们无法直接处理包含虚拟文件到基于 NSF 的设计元素的映射的 Designer 项目。它们只处理保存到磁盘上的项目。因此,您需要处理对虚拟 NSF 项目进行镜像的磁盘项目来执行源控件操作。

为帮助解决此问题,引入了 Domino Designer 源控件支持功能,以允许您将基于 NSF 的设计元素存储到源控件存储库,并使用 Domino Designer 执行常见源控件操作。该功能通过允许您在由源控件管理的磁盘项目与 Designer 跟踪的基于 NSF 的虚拟项目之间创建关联,从而实现此操作。实际上,此步骤是在执行任何基本源控件操作之前需要完成的先决条件。

最后,此功能允许您尽可能无缝地将 SVN 源控件客户端与 Domino Designer 集成,并使 Domino Designer 尽可能多地保持“与源控件系统无关”。

先决条件:设置用于源控件支持的版本源控件系统

本主题描述如何首次设置版本源控件系统,以便您可以使用源控件支持功能。

关于此任务

开放式源代码版本源控件系统(如 Subversion®)允许您在存储库上共享项目,这些项目以后会存储到存储库中。存储库类似于文件服务器,不同之处在于存储库不仅存储文件系统的副本,而且还存储其先前状态和不断变化的历史记录。Subversion® 之类的源控件系统使用网络连接访问存储库。这样,您可以处理共享文件并监视其他开发者可能进行的每一更改。

假设 SVN/Clearcase(软件版本控制和修订控件系统)的源控件插件在 Domino Designer 中已安装或动态供应,然后您才能在 Designer 中使用源控件支持功能。作为准则,需要完成以下步骤才能开始使用源控件支持功能:

过程

  1. 安装并配置开放式源代码版本源控件系统
  2. 在 Subversion 服务器中创建存储库(请参阅 Subversion 软件文档)
  3. 通过单击新建 - 存储库位置 - 新建存储库面板并输入服务器 URL 和用户凭证,向源控件服务器注册新存储库。

下一步做什么

如果尚未安装开放式源代码版本源控件系统,可以使用以下步骤来安装 Subversion® 系统:
注: 注:此版本至少需要 Eclipse 3.3,并且不支持先前版本的 Eclipse IDE。
  • 通过选择支持 Eclipse 插件安装的首选项,启用应用程序 - 安装菜单。
  • 安装 http://www.eclipse.org/subversive/downloads.php 站点上列出的 SVN Eclipse 插件的更新站点。使用 Helios Release。GEF(3.4 及更高版本)是 Subversion 插件的先决条件,因此还会要求您安装以上所示的 GEF 插件。
  • 安装完成后,从以下更新站点安装相关的 SVN 连接器:http://community.polarion.com/projects/subversive/download/eclipse/2.0/helios-site/。在此过程中,可能会提示您提供每个连接器插件。
  • 要检查是否正确安装了这两个更新站点,请验证 SVN 存储库浏览透视图是否可以在 Domino Designer 中打开,然后连接到 Subversion 服务器。
注: 使用以下插件版本测试了上述示例安装场景:
  • Subversive 插件:Subversive-incubation-0.7.9.I20100512-1900.zip
  • Subversive 连接器:Subversive-connectors-2.2.2.I20100512-1900.zip
强烈建议您使用这些版本,而不是最新或较新的版本。但是,如果您希望尝试其他版本,那么建议您尝试使用与示例中的版本类似的版本。
注: 缺省情况下,Subversive 源控件插件(以及其他可能的源控件产品插件)将安装最新版本的 Graphical Editing Framework (GEF)。如果安装了比 3.6.2 更新的 GEF 版本,那么打开 XPage 以在 Designer 中进行编辑时,它将不会正确显示。

要解决此问题,在安装 Subversive 插件(或其他适用的源控件产品插件)时,请安装不高于 V3.6.2 的特定版本 Graphical Editing Framework (GEF)。建议使用 V3.6.2。要执行此操作,在安装过程中,请取消选中仅显示每个更新站点的最新版本功能复选框。展开 .../gef/updates/releases/ 功能并选择 GEF SDK 3.6.2

设置源控件支持功能

以下主题提供有关初始设置任务的信息,在日常源控件操作的过程中开始使用 Domino Designer 源控件支持功能之前需要先完成这些任务。

  • 在磁盘项目和 NSF 之间创建关联
  • 将 NSF 与现有磁盘项目相关联
  • 设置初始同步操作的方向
  • 将 NSF 与新的磁盘项目相关联
  • 设置源控件支持功能首选项

开始之前:在磁盘项目和 NSF 之间创建关联

源控件支持功能要求您在源控件管理的磁盘项目和 Designer 使用的基于 NSF 的虚拟项目之间创建关联。

基于 Eclipse(即,开放式源代码)的源控件客户端(例如,SVN 和 CCRC)处理物理文件。因此,它们无法对其中有虚拟文件映射到基于 NSF 的设计元素的 Designer 项目直接进行处理。而只能处理保存到磁盘的项目(即磁盘项目)。因此,您需要使用对虚拟 NSF 项目进行镜像的磁盘项目来执行源控件操作。

要实现此任务,源控件支持功能要求您在源控件管理的磁盘项目和 Designer 使用的基于 NSF 的虚拟项目之间创建关联。该步骤是在执行任何基本源控件操作之前需要完成的先决条件。

以下是创建此关联所需要完成的常规步骤。

  • 确保在 Designer 中打开或创建了 NSF 应用程序。
  • 在“应用程序导航器”中,选择要与磁盘项目相关联的 NSF,并在右键单击上下文菜单中,选择团队开发 - 关联现有磁盘项目。Domino Designer 源控件支持功能通过在虚拟 NSF 项目和磁盘项目之间创建关联或映射来运行。选择此菜单选项将完成此关联。

将 NSF 与现有磁盘项目相关联

源控件支持功能允许您在由源控件管理的现有磁盘项目与 Designer 使用的基于 NSF 的虚拟项目之间创建关联。

关于此任务

使用以下步骤来创建“Designer 应用程序 (.NSF) - 磁盘项目 (ODP)”关联或映射。这是从与磁盘项目相关联... 面板执行的。

过程
  1. 在 Domino Designer 中打开或创建 NSF 应用程序。
  2. 选择创建的 NSF 并从菜单中选择“团队开发 - 与现有磁盘项目相关联...”。这将打开与磁盘项目相关联面板。通过此面板,您可以选择现有磁盘项目,以及选择将要在生成关联后发生的初始同步操作的方向。缺省设置为“从磁盘项目导入 nsf_filename”。
  3. 请参阅设置初始同步操作的方向主题,以获取有关同步设置的更多详细信息。

设置初始同步操作的方向

本主题说明在 NSF 和磁盘项目之间创建关联时发生的初始同步操作的可用方向。

在 NSF 和磁盘项目之间创建关联时,您需要选择初始同步操作的方向。 这可以是以下某项:

  • nsf 文件名导出到选定的磁盘项目 - 在初始方向如此设置时,初始同步操作会以适当的格式将所有内容从虚拟 NSF 项目导出到磁盘项目,随后您可以将其提交到源控件存储库。
  • 从选定的磁盘项目导入 nsf 文件名 - 在初始方向如此设置时,初始同步操作将使用基于磁盘的项目中的内容更新 NSF 项目。

将 NSF 与新磁盘项目相关联

源控件支持功能允许您在新磁盘项目与 NSF 之间创建关联。

关于此任务

要将 NSF 与磁盘项目相关联,请选择文件 - 团队开发 - 设置此应用程序的源控件

要在 Domino Designer 应用程序导航器中执行此操作,请右键单击要添加到源控件的应用程序的应用程序标题(图标),并选择团队开发 - 设置此应用程序的源控件。缺省情况下,这将创建新磁盘项目,并且已打开的 NSF 项目的所有内容会导出到该项目。

要获取有关如何将源控件支持功能用于常见源控件任务的更多信息,请参阅使用源控件支持功能来完成常见源控件任务主题以获取更多详细信息。

设置源控件支持功能首选项

本主题说明可设置用于定制源控件支持功能操作的首选项。

要进一步定制源控件支持功能操作,您可以通过单击文件 - 首选项 - Designer - 源控件来设置首选项。使用此功能时,这些首选项将应用于此功能。这些首选项包括以下项:

  • 将二进制 DXL 用于源控件操作 -- 根据所表示的设计元素的类型,有不同的方式来表示磁盘上的设计元素。请参阅“选择表示磁盘上设计元素的方式”部分以获取完整的详细信息。
  • 支持在修改时自动导出设计元素(从 NSF 到磁盘)-- 提供此首选项是为了支持设计元素由用户在 NSF 内修改后进行隐式导出。如果选择此首选项,那么对 NSF 项目的任何编辑(例如,创建/更新/删除表单、XPage 等)将隐式反映到磁盘项目,随后您可以将这些编辑提交到源控件存储库。
  • 支持在修改时自动导入设计元素(从磁盘到 NSF)-- 提供此首选项是为了允许设计文件在磁盘项目中修改时从磁盘隐式导入到 NSF。这还需要将“自动构建”设置为“开启”。在设置此首选项后,如果用户使用存储库中的内容更新磁盘项目,那么会将这些更改自动导入到 NSF 中。
  • 在设置向导中显示帮助程序面板 -- 在调用团队开发 - 设置此应用程序的源控件面板时,此首选项将显示描述源控件支持功能的帮助程序面板。

选择(选中)首选项以将其启用,或者取消选择首选项以将其禁用

注: 缺省情况下,自动同步首选项“已启用”。

选择表示磁盘上设计元素的方式

本主题描述表示磁盘上设计元素的方式。

根据所表示的设计元素的类型,有两种不同的方式来表示磁盘上的设计元素。

  • 作为磁盘上两个文件(内容和元数据)的集合 - XPage、定制控件、样式表、文件、主题、组合应用程序、连线属性和 JS/SSJS/LS 脚本库都表示为磁盘上两个文件(内容文件和元数据文件)的集合。内容文件具有编辑器中所示的实际文件内容,元数据文件包含 DXL,但缺少表示设计元素其余属性的内容。
  • 作为包含设计元素的 DXL 的文件 - 其余设计元素(表单、视图、页面、Java 脚本库、代理程序、共享操作等)表示为包含设计元素的 DXL 的文件。提供了首选项以将“二进制”格式用于所导出内容的 DXL。请参阅设置源控件支持功能首选项主题以获取更多信息。

使用源控件支持功能来完成公共源控件任务

提供了常规工作流程的基本步骤,使您能够了解其如何使用 Domino Designer 源控件支持功能。

由于说明各种可用源控件系统的基本源控件操作的所有详细信息不在本文档讨论范围之内,因此提供了常规工作流程的基本步骤来使您了解其如何使用 Domino Designer 源控件支持功能。

常规流程可能与以下内容类似:

  • 适当的源控件插件将安装到 Designer。
  • 在 Designer 中打开数据库。
  • 将数据库 (NSF) 与磁盘项目 (ODP) 相关联,并从 NSF 导出到 ODP
  • 提交 - 从 Designer ODP 发送到源控件存储库。
  • 检出 - 从另一台机器,在源控件存储库中下拉 ODP。
  • 将数据库 (NSF) 与 ODP 相关联,并从 ODP 导入至 .NSF。
  • 修改 .NSF 和/或 ODP 并同步这两者(隐式或显式)。
  • 将更改提交至源控件存储库。
  • 更新以从源控件存储库将更改下拉到 ODP。
  • 将更新的 ODP 与 .NSF 同步

作为更具体的示例,公共工具使用以下基本过程:

  • 共享项目以将其添加到源控件。
  • 检出以从源控件创建本地磁盘项目
  • 提交以将本地更改发送到源控件
  • 更新以接收来自源的更改。
注: 注:请参阅源控件软件文档以获取有关系统如何处理基本操作的更多详细信息。

下面的主题提供有关使用 Domino Designer 源控件支持功能来完成刚刚提到的某些公共源控件任务的更详细示例。

将现有 Domino Designer 应用程序添加到源控件

本主题描述如何将现有 Domino Designer 应用程序添加到源控件

关于此任务

比如说,您已启动了一个新的应用程序,并且已开始在本地机器上使用该应用程序。然后,您发现需要将应用程序的某些部分委派给同事。您决定通过将现有应用程序检入源控件系统来执行此操作。

该任务是使用 Domino Designer 源控件支持功能来完成的,方法是将现有 NSF 应用程序与新的磁盘项目相关联。有关如何执行此操作的步骤,请参阅将 NSF 与新的磁盘项目相关联主题。

从源控件引入应用程序

本主题描述如何从源控件引入应用程序。

关于此任务

比如说,您需要就正在构建的新应用程序为同事提供帮助。初始开发者已将应用程序检入源控件中,但现在您需要引入应用程序以开始自己处理该应用程序。

使用以下常规步骤来执行此操作:
  • 在 Eclipse 导航器视图中,使用源控件系统的命令将应用程序复制到本地机器。
  • 将磁盘项目与新 NSF 相关联

    或者

  • 将磁盘项目与现有 NSF 相关联

请参阅本部分中的其他主题以获取有关完成这些任务的更多信息。

将磁盘项目与新的 NSF 相关联

本主题描述如何将磁盘项目与新的 NSF 相关联。

关于此任务

比如说,您需要就正在构建的新应用程序为同事提供帮助。初始开发者已将应用程序检入源控件中,但现在您需要下拉应用程序以开始自己处理此应用程序。

执行此操作的一种方法是将磁盘项目与新的 NSF 相关联。 使用以下步骤来执行此操作:

过程
  1. 要将磁盘项目与新的 NSF 相关联,请右键单击新创建的磁盘项目并选择团队开发 - 关联新的 NSF...。这将打开关联新的 NSF... 对话框,其中要求输入应用程序的名称以及希望将其创建到的位置。
  2. 如果位置是“本地”服务器,那么使用浏览按钮来打开“本地”文件系统目录。
  3. 如果位置是远程服务器,那么将显示浏览按钮,并有对话框列出可供选择的文件夹。
  4. 缺省情况下,NSF 和磁盘项目将自动保持同步。
结果

将磁盘项目与现有 NSF 相关联

本主题描述如何将磁盘项目与现有 NSF 相关联。

关于此任务

比如说,您需要就正在构建的新应用程序为同事提供帮助。初始开发者已将应用程序检入源控件中,但现在您需要下拉应用程序以开始自己处理此应用程序。

执行此操作的一种方法是将磁盘项目与现有 NSF 相关联。使用以下步骤来执行此操作:

过程
  1. 要将磁盘项目与现有 NSF 相关联,请右键单击新创建的磁盘项目并选择团队开发 - 关联现有 NSF...。这将打开关联现有 NSF... 对话框。
  2. 选择要关联磁盘项目的现有 NSF 以及初始同步操作的方向。
结果

将现有 NSF 与磁盘项目相关联的示例

本主题提供将现有 NSF 与磁盘项目相关联的示例。

比如说,您正在查看同事通过电子邮件发送给您的应用程序的新副本。该应用程序此时已在源控件中发布,现在请求您提供相关帮助。在此情况下,您需要获取“真实”版本来替换邮件中发送给您的版本。

该过程与将磁盘项目与现有 NSF 相关联主题基本相同,不同之处在于关联操作从 NSF 获取的,而且选项为磁盘项目。与 NSF 相关联的磁盘项目将成为用于源控件操作的项目。有关如何执行此操作的步骤,请参阅将 NSF 与现有磁盘项目相关联主题。

处理文件同步冲突

本主题描述如何使用源控件功能来处理文件同步冲突。

关于此任务

在使用源控件中的文件时,您可能会收到文件同步冲突错误。如果发生这种情况,将弹出同步冲突对话框消息,其中显示包含冲突文件的列表框。您可以选择一个或多个文件,并选择比较文件的各种版本。当您确定正确的文件之后,然后就可以选择要使用的版本。

“同步冲突”对话框将显示一个视图,其中包含 3 列:文件名、上次修改 (NSF) 日期和上次修改(磁盘)日期。比较按钮使您能够打开一个对话框,在其中您会看到 NSF 的 DXL 版本和元素的磁盘版本并行显示,并突出显示了区别。

以下步骤用于有 2 个文件相冲突的示例。在本例中,NSF 和磁盘项目之间发生了同步冲突,并在“同步冲突”面板上列出了这 2 个文件。

过程
  1. 如果您希望,请选择一个文件,并单击比较按钮。此操作将打开“比较”对话框,其中显示每个文件的内容且突出显示了区别。
  2. 决定您希望使用的文件版本,并按使用 NSF 版本按钮或使用磁盘项目版本按钮。使用 NSF 版本选项将覆盖磁盘版本,而使用磁盘项目版本选项将覆盖 NSF 版本。您可以独立执行任一这些操作。
  3. 如果单击关闭按钮时未指定任何文件,那么在下一次触发同步冲突时这些文件将再次出现在列表中。
结果

手动同步 NSF 和本地源控件项目

本主题描述如何手动同步 NSF 和本地源控件项目。

关于此任务

有时您可能希望手动同步 NSF 和本地源控件磁盘项目。例如,如果存在问题或者在首选项面板中关闭了自动同步,那么您可能希望执行此操作。

通过从上下文菜单或主菜单中选择团队开发 - 同步磁盘项目来执行此操作。

除去源控件中的关联

本主题描述如何除去源控件中的 NSF/项目关联。

关于此任务

有时您可能希望除去在 NSF 和本地源控件磁盘项目之间创建的关联。

通过从上下文菜单或主菜单中选择团队开发 - 除去源控件关联来执行此操作。

设计 XPage 应用程序

IBM Domino Designer 提供了使用控件和其他工件填充 XPage 以及将 XPage 与数据存储关联的方法。

对于一般导航,如创建和打开 XPage,请参阅在 Domino Designer 中导航

Designer 提供了用于处理 XPage 的以下选项:

  • 单击设计选项卡可在可视方式下工作。
  • 单击选项卡可直接编辑 XML。

本文档引用了以下产品:IBM Domino、IBM Domino Designer、IBM Notes、IBM iNotes 和 IBM Notes Traveler。

预览和运行 XPage

XPage 可以在 Domino 服务器和 Notes 客户端环境中运行。您可以在这两种环境中使用 Domino Designer 预览 XPage。

对于存在于 Domino 服务器上应用程序中的 XPage,可以按照如下方法对其进行访问:
  • 通过浏览器从以下表单 URL 对其进行访问:http://server/application.nsf/xpage.xsp
  • 通过 Notes 客户端从以下表单 URL 对其进行访问:notes://server/application.nsf/xpage.xsp

对于存在于 Notes 客户端上应用程序中的 XPage,可以通过该客户端从以下表单 URL 对其进行访问:notes:///application.nsf/xpage.xsp?OpenXPage

此外,您也可以设置应用程序在启动时打开 XPage。

预览 XPage

您可以在 Domino 服务器或 Notes 客户端环境中预览 XPage。

开始之前

对于 Web 预览,必须先调整应用程序的访问控制表 (ACL)。在导航器中右键单击应用程序,并选择应用程序 > 访问控制。为匿名添加条目,并设置适当访问权限级别(至少是可以创建文档的作者级别)。
注: 此外,为了成功执行 Web 预览,请确保 HTTP 任务是在 Domino 服务器上运行。

过程

  1. 右键单击 XPage,并选择在 Notes 中预览在 Web 浏览器中预览 或者,可以将焦点放在 XPage 上,单击菜单上的设计 > 在 Notes 中预览设计 > 在 Web 浏览器中预览

    或者,也可以将焦点放在 XPage 上,单击工具栏上的在 Notes 中预览在 Web 浏览器中预览图标。

  2. 对于在 Web 浏览器中预览,需要选择浏览器类型。

结果

如果必要,Notes 预览将启动 Notes 客户端,然后在客户端中打开 XPage。客户端将处理来自 XPage 的请求。

Web 预览会启动 Domino 本地预览服务器,然后在浏览器中打开 XPage。本地预览服务器会处理来自 XPage 的请求。

在 Web 上预览 XPage 可能会与在完整应用程序的上下文中运行 XPage 有所不同。结果可能也取决于您是预览本地应用程序还是远程应用程序。预览本地应用程序始终对访问控制使用匿名,并且本地预览服务器缺少某些生产服务器的高级功能。但是,脚本会运行并将创建文档,在本地预览时将签署为“匿名”,而在服务器上预览时将签署为当前标识,这样您就可以很真实地看到应用程序。

在应用程序启动时打开 XPage

您可以在应用程序启动时打开 XPage。

过程

  1. 双击或从“应用程序导航器”打开应用程序属性 此时将打开应用程序的属性页面。
  2. 单击启动选项卡。
  3. 对于 Notes 客户端,选择打开指定的 XPage(标准客户端)并选择 XPage。
  4. 对于 Web 浏览器,选择打开指定的 XPage 并选择 XPage。 或者,如果您想要打开与 Notes 相同的 XPage,可以选择使用 Notes 启动选项
  5. 保存应用程序属性。

结果

当用户启动应用程序时,XPage 就会随即打开。

Web 浏览器用户可以通过应用 XPage 的 URL 来启动 XPage,例如 http://server/application.nsf/xpage.xsp

打开其他 XPage

通过导航规则、简单操作、XSPContext 方法和打开 URL,用户可以从一个 XPage 打开其他 XPage。

导航规则

每个 XPage 都具有 navigationRules 属性,该属性是一组 navigationRule 元素。导航规则将告诉服务器:在对通过使用“提交”或“取消”类型的按钮提交的页面进行处理之后,要向客户端返回哪些页面。请参阅 button - 按钮。每个导航规则都具有以下属性:
属性
outcome 如果更新正常,返回 xsp-success
  如果更新失败,返回 xsp-failure
redirect true 表示恢复页面的上次状态
  false(缺省值)表示打开一个清洁页面
viewId <no rule> 表示打开同一页面
  $$PreviousPage 表示打开在提交的页面之前最后打开的页面
  $$HomePage 表示打开启动页面
  page.xsp 表示打开指定的页面
以下是一个示例:
<xp:this.navigationRules>
	<xp:navigationRule
		outcome="xsp-success" viewId="$$PreviousPage">
	</xp:navigationRule>
	<xp:navigationRule
		outcome="xsp-failure" viewId="/errpage.xsp">
	</xp:navigationRule>
</xp:this.navigationRules>

在“设计”方式下,在所有控件外部单击,然后单击 XPage 选项卡,并查找下一页选项。

简单操作 openPage

“打开页面”简单操作(请参阅《IBM Domino Designer XPage 参考》会在激活时立即打开页面。 以下是一个示例:
<xp:button value="Open page 2" id="button4">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<xp:openPage name="/xpage2.xsp"></xp:openPage>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>

用于重定向的 XSPContext 方法

redirectToPage(请参阅《IBM Domino Designer XPage 参考》redirectToPrevious(请参阅《IBM Domino Designer XPage 参考》redirectToHome(请参阅《IBM Domino Designer XPage 参考》方法会在激活时立即打开页面。 以下是一个示例:
<xp:button value="Open page 2" id="button4">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete">
							<xp:this.action>
			<![CDATA[#{javascript:context.redirectToPage("xpage2.xsp")}]]>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>

打开 URL

可以通过将页面的 URL 发送至服务器来打开页面。例如,您可能会在浏览器的地址窗口中指定以下内容:
http://myserver/foo.nsf/xpage1.xsp

如果使用非 XPage 的设计元素,可以在公式中使用 @URLOpen。以下公式用于表单操作,并可以在 Notes 客户端本地打开 XPage:

@URLOpen("notes:///foo.nsf/xpage1.xsp?OpenXpage")

打开 XPage 代替视图

(仅限 Web 访问)您可以打开 XPage 代替视图。

过程

  1. 双击或从“应用程序导航器”打开视图。
  2. 打开视图属性,然后单击高级选项卡。
  3. 对于 Web 访问 > 显示 XPage 代替,选择一个 XPage。
  4. 保存视图。

结果

在用户选择该视图时,XPage 将打开。

签署 XPage

在保存 XPage 设计元素和/或生成其实现(即,类)文件时,将使用当前 Domino Designer 用户的标识签署 XPage。

关于此任务

签署 XPage 可确定其是否将在运行时装入,以及此后是否能够按自己的方法和操作运行(不管有没有限制)。限制运行是更加常用的方法,其排除了文件或网络 I/O 等特定功能。限制运行允许使用 XPage 实现语言的所有受支持功能(请参阅主题“受限制的 LotusScript 和 Java 代理程序操作”,位置如下:Domino Designer 基本用户指南和参考 > 应用程序设计 > 向应用程序添加自动化)。

对于服务器访问权,用于执行受限制/无限制方法的权限在服务器文档“安全性”选项卡的“可编程性限制”部分中指定给特定签署者或组(请参阅主题“控制在服务器上运行的代理程序和 XPage”,位置如下:Domino Administrator 帮助 > 安全性 > Notes 用户、因特网用户和 Domino 服务器的服务器访问权 > 定制 Domino 服务器的访问权)。

在调用 XPage 时(对于代理),除了检查已认证的 Web 用户的访问权之外,Domino 还会针对服务器文档检查 XPage 签署者的服务器安全权限。对于 XPage 的组件(例如,包含的 XPage、定制控件、JSF 扩展或服务器 JavaScript 库),Domino 将检查每个组件签署者的服务器访问权,并且会根据指示将 XPage 会话降级为仅在限制的情况下执行(如果针对 Domino 进行设置,那么 NoExternalApps notes.ini 变量具有相同的效果)。在运行时,DDE 用户(完全不具有任何签署 XPage 的服务器权限)的签名将生成 HTTP 403 错误返回到浏览器。

在 Notes 客户端使用 XPage

您可以在 IBM Notes 富客户端中运行 XPage 应用程序。

在 Notes 客户端中支持 XPage 的主要好处就是您可以在本地复制为 Web 开发的应用程序并在 Notes 客户端中脱机运行该程序,而无需为客户端重新开发此程序。然后可将 XPage 应用程序开发模型的所有优势延伸至 Notes 客户端。这些应用程序在嵌入式浏览器中显示,并且大部分外观和行为都与 Web 应用程序相似,但是它们在 Notes 客户端中的有些行为会有所不同。

  • 可以创建特定于 Notes 客户端的逻辑来影响应用程序在 Notes 中的渲染方式。例如,在“讨论”应用程序中,Web 呈现会在页面角落包括“欢迎用户名”消息,后跟“我的概要文件”链接。Notes 客户端中不会显示欢迎消息;“讨论”应用程序中的逻辑除去了此消息。您也可以修改应用程序的 XPage 属性以指定当应用程序在 Notes 客户端或在浏览器中运行时要使用的其他主题。
  • 在 Notes 客户端中运行的应用程序的用户可使用文件 > 保存来将修改保存至 XPage。通过 enableModifiedFlag 属性,您可以启用此菜单选项,并可以在 XPage 更改后提示用户保存更改。
  • 用户在 Notes 客户端中得到认证后,访问任何 XPage 应用程序或组件都会使用相同的凭证。因此,与在嵌入式浏览器中运行传统的 Web 应用程序不同,在这里,并不会使用 Web 登录对话框来提示用户输入凭证。
  • 为防止 XPage 设计元素(活动内容)中的代码执行受保护的操作(如读取和写入工作站文件或读写系统属性),XPage 使用执行控制列表 (ECL) 来管理用户向尝试执行受保护操作的代码签署者授予的访问权和能力。
  • 可在 Notes 客户端为页面设置书签。

除了可以将 XPage 构建为独立应用程序之外,您还可以在 Domino Designer 中构建 XPage 组件,使之可在组合应用程序中运行并支持接收/发布事件模型以及组件参数。然后,您的 XPage 组件就可以与客户端中的其他组件(如 PIM 组件)进行交互。

也请注意,XPage 应用程序可驻留在 Domino 服务器上。如果将“在 Notes 客户端中打开时”启动选项设置为“打开指定的 XPage(标准客户端)”,对应的 XPage 将在客户端上呈现,而无论该应用程序是驻留在 Domino 服务器上还是在 Notes 客户端本地。XPage 在客户端中的行为将完全相同。

使用 XPage 工具栏

Notes 客户端中的 XPage 应用程序有自己的工具栏,只要在嵌入式浏览器上将焦点放在 XPage 上,就会显示此工具栏。

关于此任务
该工具栏包括不同的按钮组。
  • 通过导航按钮,您可在页面之间前后移动、停止当前操作、刷新当前页面并返回至初始页面。刷新按钮还会提供清除私有数据选项。执行此操作将清除嵌入式浏览器高速缓存。
  • 通过“打印”按钮,您可以设置 XPage 的打印选项并将其打印出来。
  • 如果安装了 Domino Designer,那么您可以单击查看页面源按钮来查看 HTML 源,或者单击查看浏览器配置按钮来查看嵌入式浏览器设置。

XPage 安全性

为 XPage 应用程序提供了安全性。

在 IBM Notes 客户端中运行的 XPage 应用程序可包含若干设计元素,这些设计元素包含可在用户工作站上执行的代码(通常称为“活动内容”),例如,通过嵌入式 Java 代码来访问数据库或 JavaScript。为防止活动内容执行受保护的操作(如读取和写入工作站文件、读写系统属性以及网络操作),XPage 使用执行控制列表 (ECL) 来管理用户向尝试执行受保护操作的代码签署者授予的访问权和能力。

ECL 可确定是否允许代码签署者在给定工作站上运行代码,并可定义代码对各种工作站功能的访问权,如对当前数据库或其他数据库的访问权。XPage 应用程序中活动内容示例包括在 JavaScript(服务器端)中嵌入的 Java 代码、服务器端脚本库以及导入到数据库中的 Java 类和 JAR。

XPage 应用程序中的所有设计元素都有其创建者的签名。请注意,如果某个 XPage 应用程序有多个签署者,那么在执行受保护的操作之前,用户必须信任所有签署者。

XPage 应用程序的 ECL 安全性访问选项在用户安全性对话框(文件 > 安全性 > 用户安全性)中其他用户执行的操作下的使用工作站选项卡中设置。

具有活动内容过滤的安全性

活动内容过滤 (ACF) 安全性功能部件也会防止恶意代码在执行期间进入 XPage 输入控件。

活动内容过滤用于除去输入/输出文本控件中可能是恶意的活动内容(脚本和标记)。ACF 引擎是在运行时执行过滤的库。如果将焦点放在特定 XPage 控件(编辑框、多行编辑框、富文本格式、隐藏的输入)上,可以在基本下的所有属性选项卡中看到两个属性:htmlFilter htmlFilterIn

htmlFilter 属性定义当控件将数据发送到客户端时所使用的 ACF 引擎,而 htmlFilterIn 属性定义当控件从客户端收到文本时所使用的引擎。您可以更改这两个属性以便针对文本字段启用或禁用 ACF。

XPage 可使用四个 ACF 引擎:
  • acf
  • striptags
  • identity
  • empty

“acf”引擎根据配置文件 (acf-config.xml) 解析 HTML 文本并过滤出不安全的构造。“striptags”引擎使用正则表达式“replaceAll("\\<.*?>","")”来除去所有标记。“identity” 过滤器返回原始字符串。“empty”引擎将除去所有内容并返回空字符串。

“acf”引擎可通过配置文件进行配置。对于客户端,该文件通常位于 C:\Program Files\IBM\Lotus\Notes\Data\properties。例如,acf-config.xml.sample 位于此文件夹中。

要配置 ACF,您必须首先找到同一文件夹中的 xsp.properties 文件并添加以下行 xsp.htmlfilter.acf.config=acf-config.xml。这表示将使用 acf-config.xml 来配置“acf”引擎(否则将使用缺省规则)。以下是 acf-config.xml 文件内容的示例:
<?xml version="1.0"?>
<config>
       <filter-chain>
          <filter name='base' class='com.ibm.trl.acf.impl.html.basefilter.BaseFilter'
                  verbose-output='false' use-annotation='false' />
       </filter-chain>

			<filter-rule id='base'>
           <target scope=''>
             <!-- C14N rules -->
             <rule c14n='true' all='true' />

              <!-- Base rules -->
             <rule attribute='on' attribute-criterion='starts-with'
                 action='remove-attribute-value' />
             <rule attribute='${' attribute-criterion='starts-with'
                 action='remove-attribute-value' />
             <rule attribute='href' value='javascript:' value-criterion='contains'
                  action='remove-attribute-value' />
             <rule attribute='style' action='remove-attribute-value' />

              <rule tag='script' action='remove-tag' />
              <rule tag='style' action='remove-tag' />
              <rule tag='link' attribute='rel' value='stylesheet'
                   value-criterion='contains' action='remove-tag' />
            </target>
        </filter-rule>
</config>
在前面的示例中:
  • <rule attribute='on' attribute-criterion='starts-with' action='remove-attribute-value' /> 将除去以“on”开头的属性。
  • <rule attribute='href' value='javascript:' value-criterion='contains' action='remove-attribute-value' /> 将除去值包含“javascript:”关键字的所有“href”属性。
  • <rule tag='style' action='remove-tag' /> 将除去所有“script”标记。
  • <rule tag='link' attribute='rel' value='stylesheet' value-criterion='contains' action='remove-tag' /> 将除去“rel”属性值与“stylesheet”相匹配的“link”标记。

有关执行控制列表的更多信息,请参阅 Domino Administrator 帮助。

提示用户将更改保存至 XPage

您可以控制当用户请求关闭包含已修改字段的页面时,XPage 应用程序提示用户的方式。

关于此任务
当 XPage 或定制控件包含可编辑的控件时,您可以设置两个属性来指定应用程序如何就有关已修改的控件提示用户。这些属性存在于两个级别上,XPage 或定制控件级别和核心控件级别。
  • 级别 1:XPage 或定制控件
    • enableModifiedFlag(布尔值 - 缺省隐含值为 false)- 指定当 Notes 客户端中修改了 XPage 或定制控件时,是否提示用户将更改保存至 XPage 或定制控件中的核心控件,以及是否启用 Notes 客户端的文件 > 保存选项。在外部浏览器中运行的应用程序不能使用 Notes 的文件 > 保存机制,因此只会向用户显示提示对话框。
    • modifiedMessage(字符串)- 要在提示对话框中显示的定制消息
  • 级别 2:核心控件
    • disableModifiedFlag(布尔值 - 缺省隐含值为 true)- 指定是否提示用户将更改保存至核心控件
为给定的 XPage 或定制控件启用或禁用修改通知时,enableModifiedFlag 属性占有绝对的优先顺序。如果将此属性值设置为 true,那么除非您明确将核心控件的 disableModifiedFlag 属性值设置为 true,否则,会将 XPage 或定制控件中所有受支持核心控件的更改通知给用户。如果没有为 XPage 或定制控件设置 enableModifiedFlag 或将该值明确设置为 false,并且还将一个或多个核心控件的 disableModifiedFlag 属性值设置为 false,那么不会将更改通知给用户,因为 enableModifiedFlag 属性占有高优先顺序。
以下核心控件支持此功能部件:
  • 编辑框
  • 多行编辑框
  • 列表框
  • 组合框
  • 复选框
  • 单选按钮
  • 文件上载
  • 日期时间采集器
  • 富文本格式编辑器

如果用户选择不将修改保存至当前页面,那么可执行请求的操作(如关闭页面或浏览至浏览器中的其他位置)。如果用户选择保存修改,那么在保存该页面之前将验证相关字段。验证先在客户端上进行,然后再在服务器上进行。只有在当前页面字段的客户端验证成功之后,才能进行服务器端验证。如果服务器端验证失败,那么将向用户显示包含违规字段的当前页面,并允许用户更正字段内容。服务器端验证成功后,就可以执行请求的操作。

在 Domino HTTP Server 上的 Notes 中运行 XPage

为了提高性能,在 Notes 客户端中运行的基于服务器的 XPage 应用程序可以改为在 Domino HTTP Server 上运行。

缺省情况下,在 Notes 客户端中运行的基于服务器的 XPage 应用程序在该客户端上使用 Notes 协议执行服务器与客户端之间的一系列数据传输。您可以改为指定使用 HTTP 协议在 Domino 服务器上执行此类应用程序。

Notes 函数的执行方式与在本机 XPage 方式下运行时相同。例如,上下文菜单(如文件 > 保存文件 > 复制文件 > 打开)、“脏”文档保存、客户端 JavaScript 等的行为相同。一个例外是组合应用程序在服务器上运行时,将无法使用客户端属性代理功能。

Designer 需求
应用程序属性启动选项卡上,如果打开指定的 XPage(标准客户端)已生效,请选中直接在 Domino 服务器上运行基于服务器的 XPage 应用程序,然后保存应用程序。此属性还可以在 Notes 中通过应用程序的属性框进行应用。
或者,可以通过在 Notes notes.ini 文件中插入以下行并重新启动 Notes,启用所有应用程序的服务器执行:
XPagesRunRemoteAppsOnServer=1
Notes 运行时需求
Notes 客户端应该包含具有 XPage 应用程序的服务器的 HTTP 帐户。要创建或查看 Notes 帐户,请单击文件 > 首选项 > 帐户。有关文档,请参阅 Notes 帮助中的“从 Notes 首选项创建和编辑帐户”。

可以在 Domino 服务器上设置帐户,然后供应给 Notes 客户端。

在 Notes 客户端中启动基于服务器的 XPage 应用程序时,XPage 处理器会查找包含该应用程序的服务器的 HTTP 帐户,然后装入该应用程序。

Notes 帐户框架和底层 XULRunner 浏览器会自动将用户凭证传递给 Web 服务器以进行认证。 如果提示用户输入名称和密码,说明 Notes 配置设置不正确,例如 SSO 错误。可以通过 Notes 工具栏上的 Notes 浏览器地址窗口小部件来单独验证此情况。

如果不存在匹配的 HTTP 帐户,那么除非允许匿名访问,否则将提示用户提供凭证。然而,可以通过以下 notes.ini 变量使 HTTP 帐户必须存在:
XPagesRunOnServerRequireAccount=1
如果需要但找不到匹配的帐户,或者帐户信息无效,那么将提示用户关闭应用程序窗口或恢复为使用本地 Notes Web 容器运行应用程序。
以下 notes.ini 变量会禁用在服务器上的 Notes 中运行的 XPage:
XPagesRunOnServerDisable=1
性能背景
在 Notes 客户端中运行但驻留在远程 Domino 服务器上的 XPage 应用程序会面临特定的性能挑战。这主要是因为在 Notes 客户端中执行 XPage 应用程序时,必须执行大量网络事务。 XPage Notes 应用程序是在本地 Notes XPD Web 容器中运行,因此所有 XPage Java 类(XPage 和定制控件)必须通过网络从远程服务器复制到 Notes 客户端才能执行,了解这一点非常重要。与此类似,所有页面资源(CSS、JavaScript、GIF 等)也都必须从远程服务器进行访存,实际数据同样如此。此外,如果 XPage 应用程序利用其他 Notes 设计工件(例如,使用 computeWithForm 功能),那么还必须远程访存任意大的设计元素,如表单、子表单和共享字段。在等待时间较长的网络中,这可能会严重影响性能,如果应用程序主要是用于 Web,而未针对 Notes 客户端进行优化时尤其如此。

转换 XPage 应用程序

在转换 XPage 和定制控件时,不要针对每种语言制作新的副本,因为 XPage 转换机制与非 XPage IBM Notes 设计元素的机制不同。

关于此任务
在 XPage 转换机制中,可转换文本通过自动过程从 XPage 抽取到单独的文件中。然后,您就可以将其转换为其他语言的文件。XPage 会根据 Web 浏览器或 Notes 客户端的语言确定要使用的转换文件。

有关 XPage 转换的指示信息,请参阅 Domino Designer wiki 中的“XPage: How to use the localization options”。

设计单一副本 XPage

您可以将 XPage 设计元素存储在一个数据库中,并在运行时将其他数据库重定向到此数据库。

关于此任务

单一副本 XPage 通过使用一个位置进行对象存储和浏览器访问的方式,使性能得到提高。受影响的设计元素包括 XPage、定制控件、JavaScript 库、样式表和主题。要指定数据库在运行时为其 XPage 元素使用一个存储库:

过程

  1. 在左窗格中,选择应用程序属性
  2. 在顶部居中窗格中,选择 XPage 选项卡。
  3. 向下滚动到性能
  4. 选中单一副本 XPage 设计
  5. 指定包含 XPage 设计元素的 NSF 的名称。相对名称是相对于 Notes 数据目录。

结果

包含设计元素的应用程序必须是 NSF 文件。

所有 XPage 设计元素必须都位于存储库中或都不在存储库中。您无法单独覆盖或选择设计元素。

您无法动态更改单一副本设置。

共享元素限制为刚才枚举的 XPage 元素。而表单和视图等不会共享。

使用 XPage 创建辅助功能应用程序 - 概述

对于创建 Web 应用程序的 Domino 开发人员,建议使用 XPage 作为辅助功能解决方案。

业务领域有一个重要的需求:设计和创建出各种健全和残障人士均可使用的软件应用程序。 对于创建 Web 应用程序的 Domino 开发人员,使用 XPage 可提供建议的辅助功能解决方案。要使用 XPage 创建辅助功能应用程序,需要了解多种用户的需求,包括残障人士以及有与年龄相关的能力限制的成熟用户。

残障人士可能会在应用程序中遇到一种或多种障碍,应用程序开发者可以通过先了解潜在问题区域,然后进行相应的应用程序设计来避开这些问题区域,以实现消除或最大限度地减少这些障碍。

在设计辅助功能应用程序时,需要记住以下四种主要的残障类别:

  • 视力
  • 听力
  • 移动能力
  • 认知能力

以下几部分内容旨在为您提供设计 XPage 应用程序并使其具有辅助功能所要考虑的事项的一般性准则。

解决视力障碍用户问题的一般性准则

在针对视力障碍人士设计应用程序时,请牢记以下准则:

  • 记住用户界面设计的可导航性。对视力障碍人士而言,鼠标没有用,因为使用鼠标需要手眼配合。 他们使用键盘进行导航。 例如,Tab 键会将焦点移动到某个项目上,然后屏幕朗读器会读出该项目以告知用户焦点的位置。 然后用户按 Enter 键。 记住这一点,确保应用程序标签和其他文本均提供所有非文本内容的文本替代方法以便可更改为其他格式(例如大型打印、盲文、语音、符号或更简单的语言)。
  • 确保所有非文本内容(如图形、图等)均显示服务于等效目的的文本替代方法。 屏幕朗读技术无法从图像获取文本信息
  • 提供具有客户端图像映射的替代方法文本。如果使用服务器端图像映射,则应提供等效文本链接。
  • 确保在用户界面中使用的颜色和字体大小视力欠佳的人士也可看见。 除简单的字体放大以外,视力欠佳的用户还需要硬件或软件放大镜的帮助来放大文本。 色盲和视力欠佳的用户可受益于高对比度的颜色。

    在仅使用颜色来提示信息时,色盲人士就可能错过该信息。 与之类似的情况是,如果使用信息自身的任何属性(如对比度、深度、大小、位置、字体等)来呈现信息,则视力欠佳的用户可能不会发现信息。 . 在您的应用程序中,请使用多种方法来传递信息。 例如,如果在图形上的不同条形中既使用颜色又使用填充模式,请确保在彩色或黑白模式下均可看到显示效果。

解决听力障碍用户问题的一般性准则

在针对听力障碍人士设计应用程序时,请牢记以下准则:

  • 确保随音频输出信息同时提供冗余的等效可视形式。 通过确保可视形式具有冗余的文本选项,提供额外的支持。
  • 对基于时间的媒体(包括实时仅音频内容和实时仅视频内容)提供描述性标签。 以不同形式提供用于确认内容被人员而非计算机访问的非文本内容,以满足多种残障人士的需求
  • 在需要的位置(例如,在视频中)提供文字说明

解决移动能力障碍用户问题的一般性准则

在针对移动能力障碍人士设计应用程序时,请牢记以下准则:

  • 移动能力障碍人士在使用计算机输入设备时和处理存储介质时会遇到困难。 确保牢记软件/设计解决方案和操作可以不使用鼠标或键盘进行控制。

解决认知能力障碍用户问题的一般性准则

在针对认知能力障碍人士设计应用程序时,请牢记以下准则:

  • 使用一致的设计和简单的语言。存在认知障碍的人士(如读写困难和短时记忆缺失)需要一般性解决方案。 过于详细会导致混淆。例如,通过使用模板,可以对每个页面复用相同的布局和设计,这样存在认知障碍的人士就能更轻松地在网站中导航。
  • 存在认知障碍或理解障碍的人士也可受益于冗余输入。 比如说,同时提供音频文件和视频抄本。

    通过同时查看文本和收听朗读,用户可以同时利用听力和视力技能来更好地理解材料。 能够让存在认知障碍人士受益的解决方案同样能够让不熟悉显示语言的用户受益。 认知解决方案,尤其是简单的用户界面、术语和示例,也会让那些存在教育或文化缺失的用户受益。 例如,不熟悉计算机的人。

关于创建辅助功能应用程序的其他信息

以下资源提供了有关创建辅助功能 Web 应用程序和软件的其他信息:

  • IBM Web 辅助功能选项核对表 - 提供关于以下内容的核对表:
    • 网站和 Web 应用程序
    • Flash 和 Flex Web 应用程序
    • Domino Web 应用程序
    • 了解 Web 浏览器中显示的内容,包括 QuickViews、PARR 和 Learning Suite
  • IBM 软件辅助功能选项核对表 - 提供关于以下内容的核对表:
    • 使用标准窗口小部件工具箱 (SWT) 控件编写的 Eclipse 应用程序
    • 使用 Swing 控件和组件编写的 Java 2 或更高版本应用程序
    • 使用抽象窗口工具箱 (AWT) 控件和组件编写的 Java 1.1.x 应用程序
    • 具有命令行或“绿色屏幕”界面的产品
    • 软件工具的输出以及用户界面
    • 具有用户界面的通用软件产品和应用程序
  • Eclipse 辅助功能选项信息。以下链接提供特定于 Eclipse 的辅助功能选项信息:

XPage 特定辅助功能选项准则

确保 XPage 应用程序和控件具有辅助功能。

业务领域有一个重要的需求:设计和创建出各种健全和残障人士均可使用的软件应用程序。 对于创建 Web 应用程序的 Domino 开发人员,使用 XPage 可提供建议的辅助功能解决方案。要使用 XPage 创建辅助功能应用程序,需要了解多种用户的需求,包括残障人士以及有与年龄相关的能力限制的成熟用户。

在使用 XPage 创建 Web 应用程序时,为确保应用程序具有辅助功能,有一些可以遵循的其他特定准则。 以下几部分内容描述了这些准则。

XPage 辅助功能选项准则

在使用 XPage 设计元素创建 Web 应用程序时,为确保应用程序具有辅助功能,有一些可以遵循的其他特定准则。 这包括:

  • 必要时使用 ARIA - Accessible Rich Internet Applications (ARIA) 信息可帮助您增加 Web 页面的辅助功能选项。对于使用 Ajax、HTML、JavaScript 和相关技术开发的动态内容和用户界面组件,这尤其有用。

    ARIA 用作 HTML 功能的补充。如果使用 HTML 即足以使页面支持辅助功能选项,那么无需设置 ARIA。在 HTML 中有间隔的情况下,可使用 ARIA 为 JAWS 用户提供可能缺少的辅助功能选项信息。 但是,HTML 会始终优先于 ARIA。

    所以在使用 JAWS 时,尽管一些 ARIA 属性可能已设置并在 HTML 中呈现,JAWS 也将根据此思路来确定是否要使用这些属性并为用户朗读这些属性。 例如,不会同时需要 aria-label 和“for”属性。HTML 会始终优先于 ARIA,aria-label 将被忽略。

  • 使用 JAWS 并在应用程序中使用部分更新和完全更新功能 - 使用部分更新功能时需谨慎。确保要更新的目标区域/控件处于待朗读顺序(即,尚未导航至其中),以便显示在 JAWS 导航路径中。
  • 在应用程序中使用事件 - 作为常规做法,使用冗余函数处理程序处理 onmouse 事件以支持残障用户进行键盘导航
  • 使用访问键 - 访问键不支持运行时绑定。 最好在设计时进行这些设置。尝试使绑定唯一、直观。
  • 尽可能使用辅助功能控件 - 已进行的更改可帮助开发人员使用辅助功能控件创建辅助功能 XPage 应用程序。 目标是为了让 XPage 运行时体验更加符合辅助功能选项需求。 已在某些控件中添加了新的辅助功能选项属性以使其具有辅助功能。 其他文档和准则也已添加到本产品帮助的控件参考部分以帮助您创建具有辅助功能的应用程序。
  • 使用特定于您要使用的控件的辅助功能选项属性。 请参阅本帮助的“控件参考指南”和“Extension Library 控件参考指南”部分以获取有关某特定控件的可用辅助功能选项属性的更多具体信息。

使用 XPage 辅助功能主题

利用 R9.0.1,XPages 目前支持符合辅助功能选项准则和需求的主题。 此主题名为 oneuiv2.1_blue

关于通过 XPage 使用控件的辅助功能选项准则

其他信息已添加到本用户指南的“控件参考”部分以帮助您选择为实现应用程序辅助功能应使用哪些控件。 此信息包括

  • 可帮助控件满足辅助功能选项需求的特定辅助功能选项属性的简介
  • 可帮助应用程序满足辅助功能选项需求的控件用法准则
  • 可帮助应用程序满足辅助功能选项需求的控件变通方法信息和替代方法建议

请参阅本帮助的“控件参考指南”和“Extension Library 控件参考指南”部分以获取有关某特定控件的可用辅助功能选项属性的更多具体信息。

提供定制错误页以满足辅助功能选项需求

在系统管理员的一些帮助下,您可以提供能满足辅助功能选项需求的定制错误页。

如果错误 401、403、404 或 500 来自 Domino Web 引擎,则可以使用您自己的定制页面来覆盖这些错误页。 有关更多详细信息,请参阅 Domino Administrator 产品帮助中的“定制 Web 服务器消息”主题。

如果错误 404(即,“找不到文件”)来自 Domino HTTP 任务,则有一个 NOTES.INI 文件设置让您可以定制该错误页。请参阅 Domino Administrator 产品帮助以及此技术说明以获取更多信息。

常规应用程序辅助功能选项提示

对于创建 Web 应用程序的 Domino 开发人员,使用 XPage 是建议的辅助功能解决方案。为确保应用程序具有辅助功能,有一些可以遵循的其他提示。 这包括:

  • 在 Domino 服务器上启用 SSO 进行辅助功能用户认证。

添加控件

控件是诸如编辑框、按钮、图像和文本之类的可视元素,用户可通过这些元素对 XPage 上的数据执行操作。

控件类型如下:核心、容器和其他。

标记名称用于在 XML 中标识每个控件。公共名称显示在用户界面中。例如,编辑框的标记名称为 inputText,而公共名称为“编辑框”。下面的参考主题通过标记名称和公共名称来标识控件。

缺省情况下,控件选用板和创建菜单列出大多数核心控件和容器控件。选择其他可访问所有控件。可以通过文件 > 首选项 > Domino Designer > 选用板来调整控件显示。

对控件和文本进行操作

可以使用设计编辑器向 XPage 添加控件和文本。控件选用板提供控件的源。

控件选用板显示在编辑器一侧的窗口中。如果未显示,请单击窗口 > 显示 Eclipse 视图 > 控件

可以将控件从选用板拖动到编辑器(设计)。或者,可以将光标置于编辑器中,然后双击选用板上的控件。也可以使用菜单中的创建 > 核心控件创建 > 容器控件

可以按照通常的方式对控件进行移动、调整大小、剪切、复制、粘贴和删除操作。

可以向 XPage 添加文本和回车符。

设计编辑器中将光标置于控件上会使该控件的属性可用。将光标置于所有控件以外会使 XPage 属性可用。

还可以从大纲视图中执行某些 XPage 操作。

设置属性

属性定义 XPage 和控件。

属性显示在编辑器下方的窗口中。显示的属性为编辑器中处于焦点下控件的属性,或者,如果焦点落在所有控件以外,那么属性为 XPage 的属性。

选择属性选项卡下的所有属性,可访问某个控件或 XPage 的所有属性的分类列表。此处,属性由其规范标记名称标识。在属性事件选项卡下进行其他选择,以使用设计的用户界面访问属性子集。此处,可通过描述名称访问属性。

按如下所示将值指定给属性:
  • 从列表选择或输入静态值。
  • 使用返回值的脚本指定动态值。属性旁的菱形可打开脚本编辑器。
  • 使用服务器端和客户端脚本以及简单操作指定事件。最好在事件选项卡上指定脚本和简单操作。
在 XML 源中,属性 (property) 显示为控件元素的属性 (attribute) 和内容。例如,以下是 idvalue 属性 (property) 定义为属性 (attribute) 的 inputText(编辑框)控件。
<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText>
此处 value 属性定义为控件定义的内容:
<xp:inputText id="inputText1">
	<xp:this.value>
		<![CDATA[#{javascript:return document1.getItemValueString("subject")}]]>
	</xp:this.value>
</xp:inputText>
动态属性按如下所示进行计算。使用编辑窗口单选按钮来选择其中一项或另一项。
  • 选择动态计算将在 XPage 刷新时重新计算公式。这些公式在源中出现,前面带有一个井号,例如 #{javascript:var dc = database.getAllDocuments(); "Count = " + dc.getDocumentCount();}
  • 选择页面装入时计算将在首次装入 XPage 时计算一次公式。这些公式在源中出现,前面带有一个美元符号,例如 ${javascript:var dc = database.getAllDocuments(); "Count = " + dc.getDocumentCount();}

了解事件

事件是用户可以执行的操作,如单击按钮或将焦点从编辑框移开。事件处理程序是您(设计者)为响应事件而执行的操作。

事件处理程序是控件或 XPage 的一部分。

事件处理程序可以是脚本、简单操作或简单操作组。对于一个事件,可以将处理程序指定为在客户端和/或服务器上运行。客户端处理程序可以通过返回 false 来停止进一步执行客户端处理程序并取消执行服务器处理程序。

如果在设计方式下操作,请将焦点置于相应的控件或页面上,单击事件选项卡,然后选择所需事件。这时就可以指定事件处理程序。

事件被作为属性对待,并显示在属性下的所有属性上。但是,最佳做法是不要通过所有属性创建或修改事件。请使用事件选项卡或源 XML。

服务器事件处理程序

在源方式下,服务器事件处理程序的一般格式如下所示。如果在设计方式下操作,请依次选择事件选项卡和服务器选项卡。
<xp:eventHandler event="name" submit="true|false"
	refreshMode="complete|partial|norefresh" refreshId="id"
	immediate="true|false"	execMode="partial|full">
							<xp:this.action>
		<![CDATA[#{javascript:textOfScript}]]> <!-- script -->
		<xp:actionName arguments</xp:actionName> <!-- or simple action -->
		<xp:actionGroup condition="#{javascript:textOfScript}"> <!-- or simple action group -->
			actions and embedded groups
		</xp:actionGroup>
							</xp:this.action>
	<xp:this.parameters>
		<xp:this.parameter name="name" value"value"</xp:this.parameter> ...
	</xp:this.parameters>
</xp:eventHandler>
其中:
  • event 指定事件的名称,例如 onbluronclick。如果在事件选项卡上操作,请选择相应事件。
  • submit="true" 导致在用户激活事件时将请求发送到服务器。submit 的任何其他值都将停用事件。如果在事件选项卡上操作,请单击无提交以除去事件。
  • refreshMode 为以下某个值:
    • complete 在服务器处理请求之后将整个页面重新装入到客户端。如果在事件选项卡上操作,请单击完全更新
    • partial 使用异步 JavaScript 和 XML (AJAX) 技术重新装入页面的选定部分。如果在事件选项卡上操作,请单击部分更新
    • norefresh 不重新装入页面。如果在事件选项卡上操作,请单击不更新
  • refreshId 仅适用于 refreshMode="partial",并指定要更新的控件。如果在事件选项卡上操作,请单击选择元素
  • immediate="true" 禁止服务器上的数据验证。对于数据处理,可省略此属性或指定除 true 以外的任何值。如果在事件选项卡上操作,请单击不要验证或更新数据
  • execMode="partial" 指定执行代码段时进行部分刷新。对于完全刷新,可省略此属性或指定除 partial 以外的任何值。如果在事件选项卡上操作,请单击设置部分执行方式
  • action 指定以下任何一个值:
    • 脚本,其中 textOfScript 是您的代码。如果在事件选项卡上操作,请单击脚本编辑器。在脚本窗口中输入脚本,或打开脚本对话框。
    • 简单操作的名称及其参数。如果在事件选项卡上操作,请单击简单操作。使用各种按钮和列表来创建和编辑简单操作。
    • 可包含简单操作和其他操作组的 actionGroup。条件为可选。您可以指定多个组。
  • parameters 指定任何事件参数的名称和值。如果在事件选项卡上操作,请单击编辑事件参数

客户端事件处理程序

作为客户端脚本的事件处理程序的一般格式如下所示。如果要在设计方式下操作,请选择事件选项卡,然后选择客户端选项卡。
<xp:eventHandler event="name" submit="false"
	<xp:this.script>
		<![CDATA[[textOfScript]]> <!-- script -->
		<xp:actionName arguments</xp:actionName> <!-- or simple action -->
		<xp:scriptGroup conditionScript="textOfScript"> <!-- or simple action group -->
			actions and embedded groups
		</xp:scriptGroup>
	</xp:this.script>
</xp:eventHandler>
其中:
  • event 指定事件的名称,例如 onbluronclick。如果在事件选项卡上操作,请选择相应事件。
  • submit="false" 表示当用户激活事件时,不会向服务器发送任何请求。对于客户端脚本,此值为必需。
  • script 指定以下任何一个值:
    • 脚本,其中 textOfScript 是您的代码。如果在事件选项卡上操作,请单击脚本编辑器。在脚本窗口中输入脚本,或打开脚本对话框。
    • 简单操作的名称及其参数。如果在事件选项卡上操作,请单击简单操作。使用各种按钮和列表来创建和编辑简单操作。
    • 可包含简单操作和其他操作组的 scriptGroup。条件为可选。您可以指定多个组。

提交和取消事件处理程序

类型为提交的按钮生成以下格式的事件处理程序:
<xp:eventHandler event="onclick" submit="true"
	refreshMode="complete" immediate="false" save="true">
</xp:eventHandler>
类型为取消的按钮生成以下格式的事件处理程序:
<xp:eventHandler event="onclick" submit="true"
	refreshMode="complete" immediate="true" save="false">
</xp:eventHandler>
请注意,对提交按钮使用 save="true",而对取消按钮使用 save="false"

组合服务器和客户端事件处理程序

客户端 JavaScript 代码可触发服务器端事件处理程序。第一个参数必须是事件处理程序的标准路径,而不仅仅是服务器端事件处理程序的标识。这还允许您调用嵌入在定制控件中的事件处理程序。与其他任何控件一样,您可以获取事件处理程序服务器端的标识,并将其传递给客户端脚本(例如,使用 # {id:eventhanderId} 或 SSJS 函数 getClientId())。

事件处理程序在指定的上下文中执行。例如,为事件处理程序指定标识 view:_id1:repeatCtrl:0:_id33:eventhandler1 将针对 xp:repeat 中标识为 repeatCtrl 的第一个项执行,而 view:_id1:repeatCtrl:1:_id33:eventhandler1 将针对第二个项执行。

客户端事件处理通过按钮或其他用户界面元素触发,并且将信息传递给服务器以供服务器端事件处理进行处理。 如果要在设计方式下操作,请选择事件选项卡,然后选择客户端选项卡。
<button dojoType="dijit.form.Button" type="button"
	onClick="XSP.executeOnServer('# {id:eventhandler1a}', '# {id:panel1}')">
	Click To Trigger Server Event Handler
</button>

<xp:eventHandler event="name" id="eventhandler1a">
							<xp:this.action>
		<xp:saveDocument />
							</xp:this.action>
</xp:eventHandler>
如果在设计方式下操作,请依次选择事件选项卡和服务器选项卡。
XSP.executeOnServer = function () {
	// the event handler id to be executed is the first argument, and is required
	if (!arguments[0])
		return false;
	var functionName = arguments[0];

	// OPTIONAL - The Client Side ID that is partially refreshed after executing the event handler
	var refreshId = (arguments[1]) ? arguments[1] : "@none";
	var form = (arguments[1]) ? this.findForm(arguments[1]) : dojo.query('form')[0];
       
	// catch all in case dojo element has moved object outside of form...
	if (!form)
		form = dojo.query('form')[0];

	// OPTIONAL - Options object containing onStart, onComplete and onError functions for the call to the
	// handler and subsequent partial refresh
	var options = (arguments[2]) ? arguments[2] : {};

	// OPTIONAL - Value to submit in $$xspsubmitvalue. can be retrieved using context.getSubmittedValue()
	var submitValue = (arguments[3]) ? arguments[3] : '';

	// Set the ID in $$xspsubmitid of the event handler to execute
	dojo.query('[name="$$xspsubmitid"]')[0].value = functionName;
	dojo.query('[name="$$xspsubmitvalue"]')[0].value = submitValue;
	this._partialRefresh("post", form, refreshId, options);
}	

了解构面

构面定义控件中用于放置其他控件的区域。

根据控件和构面的内容,控件可能呈现构面,也可能不呈现构面。

构面的一种特殊用法是在视图中放置分页器。构面的一般用法是在其他控件中放置面板。以下是视图的样本源代码。请注意,facets 区域显示为父控件的属性,并包含其他控件。
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

xp:key 规范是一个构面工件,而非其他控件的属性。显示的值适合于视图中的分页器。对于面板,使用以下某个值指定其他控件在父代中的位置:eastwestsouthnorthsouthwestsoutheastnorthwestnortheast

以下样本代码包含一个面板,其中显示两个链接(收件箱发件箱)和一个图像。第一个链接提供 onclick 事件。
<xp:viewPanel>
	<xp:this.facets>
				<xp:panel xp:key="west">
					<xp:link text="Inbox" >
						<xp:eventHandler event="onclick" submit="true">
							<xp:this.action>
							</xp:this.action>
						</xp:eventHandler>
					</xp:link>
					<xp:br/>
					<xp:link  text="Outbox" />
					<xp:br/>
					<xp:image id="viewPickerImage"
						value="/images/sampleViewPicker.gif" />
				</xp:panel>
	</xp:this.facets>
<xp:viewPanel>

在设计方式下,构面不可见。必须使用源方式来直接创建和修改构面。

了解 Dojo 窗口小部件

Dojo 窗口小部件是预打包的 JavaScript 代码、HTML 和 CSS 声明,可以改善控件在浏览器和 Notes 客户端中的外观和使用。

在以下控件上可以使用 Dojo 窗口小部件:编辑框、富文本格式、多行编辑框、按钮、复选框、单选按钮、日期时间采集器、跨越内容、窗格、表、Div。

在 Domino 8.5.3 中,Dojo 文件位于 Notes 数据目录的 domino\js\dojo-1.5.0\dijit 下。 在 Domino 8.5.2 中,它们位于 domino\js\dojo-1.4.1\dijit 下。

应用程序应该通过 /.ibmxspres/dojoroot/(映射到受支持的版本)来引用 Dojo 文件。

有关 Dojo 的更多信息,请参阅 http://api.dojotoolkit.org

在 XPage 上提供 Dojo 资源

必须先提供 Dojo 资源,才能将其应用到控件。

关于此任务
要在 XPage 上提供 Dojo 资源:
过程
  1. 将焦点放在 XPage 本身。
  2. 选择属性选项卡上的 Dojo
  3. dojoTheme 设置为 true。
  4. 选择属性选项卡上的资源
  5. 针对想要使其可用的每个窗口小部件:
    1. 单击添加,然后选择 Dojo 模块
    2. 指定 Dojo 模块名称,例如 dijit.form.NumberSpinner
    3. (可选)指定一个条件,即求值结果为 true 或 false 的脚本。
    4. 单击确定

将 Dojo 窗口小部件应用到控件

如果 XPage 上可以使用 Dojo 资源,那么可以将其应用到控件。

关于此任务
要将 Dojo 窗口小部件应用到编辑框等控件:
过程
  1. 将焦点放在控件上。
  2. 选择属性选项卡上的 Dojo
  3. Dojo 类型设置为 Dojo 模块资源的名称,例如 dijit.form.NumberSpinner所有属性下,这是 dojoType
  4. 要设置属性值:
    1. 单击添加图标。
    2. 指定属性名称,例如 dijit.form.NumberSpinnervaluesmallDelta
    3. 指定属性值,例如在 dijit.form.NumberSpinner 中,为 value 指定 100 或为 smallDelta 指定 5。
    所有属性下,这是 dojoAttributes
结果
如果保存并预览应用于“编辑框”控件的 dijit.form.NumberSpinner,那么编辑框一侧将会显示向上和向下箭头(微调框)。编辑框的初始值是 value 属性。单击向上向下箭头时,值会以 smallDelta 属性为单位进行递增和递减。

控件参考

此处指定 XPage 控件。

br - 换行符

在文本中插入换行符。

类别
核心控件
语法
<xp:br attributes>content</xp:br>
表 1. 所有属性
类别 属性
辅助功能选项 title
基本 attrsbindingidloadedrenderedrendererType
dojo dojoAttributesdojoType
样式 disableThemestylestyleClassthemeId
用法

在运行时,页面上显示一个换行符。

通常,此控件不使用属性。

示例
以下是分隔两个按钮的换行符:
<xp:button value="Submit" id="button2">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete"
	immediate="false" save="true"></xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:button value="Cancel" id="button3">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete"
	immediate="true" save="false"></xp:eventHandler>
</xp:button>

button - 按钮

显示用户可以单击以执行操作的按钮。

类别
核心控件
语法
<xp:button attributes>content</xp:button>
表 2. 基本属性
属性 描述
id 缺省值为 button1button2 等。
value 指定按钮的标签。
eventHandler 指定激活按钮时的操作。请参阅用法部分。
用法
在运行时,页面上显示一个按钮。用户可以单击该按钮。
按钮分为三种类型:
  • 按钮(缺省值)将对您创建的事件处理程序(例如,onclick)进行响应。为满足辅助功能选项合规性,value 属性必须描述要执行的操作。
  • 提交将保存数据并关闭页面。为满足辅助功能选项合规性,value 属性必须为 Submit
  • 取消将关闭页面。为满足辅助功能选项合规性,value 属性必须为 Cancel
页面关闭后,装入的下一个页面由页面的 navigationRules 属性确定,即 UI 中的下一页(成功或取消)
要设置 UI 中的按钮类型,请在属性下单击按钮,然后查找按钮类型。生成的 eventHandler 属性 (property) 具有以下属性 (attribute)。如果您手动构造 eventHandler 属性,请遵循这些规则。
按钮 提交 取消
event=any event="onclick" event="onclick"
submit=any submit="true" submit="true"
refreshMode=any refreshMode="complete" refreshMode="complete"
immediate=any immediate="false" immediate="true"
save=any save="true" save="false"
action=simple action or event handler action=none action=none
示例
此按钮控件的类型是“提交”。
<xp:button id="button1" value="Submit">
	<xp:eventHandler event="onclick"
		submit="true" refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
</xp:button>
此按钮控件的类型是“取消”。
<xp:button id="button2" value="Cancel">
	<xp:eventHandler event="onclick"
		submit="true" refreshMode="complete" immediate="true" save="false">
						</xp:eventHandler>
</xp:button>
此按钮控件的类型是“按钮”,单击该按钮时将执行保存数据简单操作。
<xp:button id="button1" value="Save and Exit">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<xp:save name="/xpage2.xsp"></xp:save>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>

回调 - 可编辑区域

为嵌入在 XPage 中时可编辑的区域提供定制控件。

类别
核心控件
语法
<xp:callback attributes>content</xp:callback>
表 4. 基本属性
属性 描述
id 缺省值为 callback1callback2 等。
facetName 标识构面区域。
表 5. 所有属性
类别 属性
基本 attrsbindingfacetNameidloadedrenderedrendererType
样式 disableThemethemeId
用法
该控件仅应用于定制控件。

有关更多信息,请参阅定义定制控件中的可编辑区域设置定制控件中可编辑区域的属性

checkBox - 复选框

显示可以选中或清除的框。

类别
核心控件
语法
<xp:checkBox attributes>content</xp:checkBox>
表 6. 基本属性
属性 描述
id 缺省值为 checkBox1checkBox2 等。
text 提供标签。
value 将控件绑定到数据元素或其他值。
checkedValue 指定选中该框时的数据值。缺省值为字符串 true
uncheckedValue 指定清除该框时的数据值。缺省值为字符串 false
defaultChecked 指定 true 表示缺省情况下选中该框。
用法
在运行时,页面上显示一个复选框。用户可以将其选中或清除。选中时框中将显示一个复选标记。

为满足辅助功能选项合规性,标签必须跟随复选框。 可以通过指定 text 属性或通过在复选框后放置一个标签控件来执行此操作。 标签不得位于复选框之前。

示例
此复选框控件根据复选框是处于选中(缺省情况下)还是清除状态来指定一个数据值。
<xp:checkBox id="checkBox2" text="Use user name instead of Anonymous"
	defaultChecked="true" value="#{document1.loginname}" uncheckedValue="Anonymous"
	checkedValue="#{javascript:session.getUserName()}">
</xp:checkBox>
此复选框控件绑定到名为 phonesame 的请求变量。如果此框更改,将运行脚本。如果选中此复选框,脚本会将 phonenight 控件(编辑框)的值设置为等于 phoneday 控件。
<xp:checkBox text="Night phone same as day" id="checkBox1"
	value="#{requestScope.phonesame}">
	<xp:eventHandler event="onchange" submit="true" 	refreshMode="complete">
		<xp:this.action><![CDATA[#{javascript:
			if(requestScope.phonesame == "true") {
				getComponent("phonenight").setValue(
					getComponent("phoneday").getValue());
			}
		}]]></xp:this.action>
						</xp:eventHandler>
</xp:checkBox>

checkBoxGroup - 复选框组

显示可以选中或清除的多个框。

类别
核心控件
语法
<xp:checkBoxGroup attributes>content</xp:checkBoxGroup>
表 8. 嵌入式控件
控件 描述
selectItem 提供一个项供用户选择。
selectItems 提供一个或多个项供用户选择。
表 9. 基本属性
类别 属性
id 缺省值为 checkBoxGroup1checkBoxGroup2 等。
value 将控件绑定到数据元素或其他值。
legend 提供屏幕可读组描述。
用法
在运行时,页面上显示一个或多个复选框。用户可以选中或清除这些框。选中时框中将显示一个复选标记。

绑定到复选框的数据元素必须允许多个值。

为满足辅助功能选项合规性,必须指定 legend 属性。

示例
此复选框组控件显示两个项以供选择。
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" value="#{document1.fruit}">
		<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
		<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
	</xp:checkBoxGroup>
此复选框组控件显示两个项以供使用公式进行选择。
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
此复选框组会根据视图列中的值获取其要选择的项。
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

comboBox - 组合框

显示项的列表,可以选择其中某个项。

类别
核心控件
语法
<xp:comboBox attributes>content</xp:comboBox>
表 11. 嵌入式控件
控件 描述
selectItem 提供一个项供用户选择。
selectItems 提供一个或多个项供用户选择。
表 12. 基本属性
属性 描述
id 缺省值为 comboBox1comboBox2 等。
text 提供标签。
value 将控件绑定到数据元素或其他值。
用法
在运行时,页面上显示一个下拉列表。用户可以选择某个项。
示例
此组合框控件显示两个项以供选择。
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:comboBox>
此组合框控件显示两个项以供使用公式进行选择。
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:comboBox>
此组合框从视图列中的值获取其选择项。
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:comboBox>

dataTable - 数据表

包含与数据源相关的排列为行和列的单元格。每个单元格可以包含其他控件(包括表)和文本。

类别
容器控件
语法
<xp:dataTable attributes>
	<xp:column attributes>content	</xp:column>
	...
</xp:dataTable>
表 14. 基本属性
属性 描述
id (dataTable) 缺省值为 dataTable1dataTable2 等。

(column) 缺省值为 column1column2 等。

value (dataTable) 通常,数据绑定指向元素的集合,例如 NotesDocumentCollection 对象。
var (dataTable) 通常,此变量引用绑定数据集合的某个成员,例如,如果绑定指向 NotesDocumentCollection 对象,那么此变量引用 NotesDocument 对象。
表 15. 所有属性 (dataTable)
类别 属性
辅助功能选项 captionrolesummarytitle
注: 从 9.0.1 开始,已废弃 role 属性。 缺省情况下,会生成适当的合规值。 为符合辅助功能选项标准,请不要指定此属性的值。
基本 attrsbindingdirdisabledidlangloadedpartialExecutepartialRefreshrefreshIdrenderedrendererTyperules
数据 datafirstindexVarrowsvaluevar
事件 onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
格式 bgcolorbordercellpaddingcellspacingframeshowUnreadMarkswidth
样式 captionStyleClasscolumnClassesdisableThemefooterClassheaderClassreadMarksClassrowClassesstylestyleClassthemeIdunreadMarksClass
表 16. 所有属性 (column)
类别 属性
辅助功能选项 role
基本 bindingidloadedrenderedrendererType
样式 disableThemestylestyleClassthemeId
分页器
根据设计规范,包含一个或多个分页器的构面区域是表的一部分。使用源方式在构面区域内工作。

以下是分页器控件的样本构面:

	<xp:this.facets>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="header" id="pager1">
	</xp:pager>
</xp:this.facets>
位于属性显示选项卡上的以下框以如下方式影响构面内容:
  • 在页眉中显示分页器(缺省情况下清除)生成键 headerpager 控件。如果清除此框,那么不会生成任何构面区域。
  • 在页脚中显示分页器(缺省情况下清除)生成键 footerpager 控件。
用法
在运行时,页面上显示数据表。用户每次可以访问表的一个单元格。

创建数据表后,您可以添加和删除行与列。

每个列的内容为一、二或三个值,表示表中的表头行、中间行和表尾行。中间行呈现为可变的行数,具体取决于数据源中的元素数量。

要获取 Domino 视图功能(例如,类别、总数、响应文档和排序),首选视图控件。视图控件包括其源 Domino 视图的功能。

需要视图控件以外的功能时,首选此控件。此控件允许用户在列中进行编辑,而视图控件则不允许。使用此控件,您可以嵌入并绑定选择的其他控件(例如,图像),而视图控件受源 Domino 视图设计的约束。

为满足辅助功能选项合规性,请勿将此控件用于可视布局,请勿将 role 属性设置为 presentation。 对于可视布局,请使用控件。

示例
此数据表显示当前数据库中所有文档的 subjectfruit 项。
<xp:dataTable id="dataTable1" rows="30"
	value="#{javascript:return database.getAllDocuments()}" var="rowdoc">
	<xp:column id="column1">
	<xp:this.facets>
			<xp:label value="subject" id="label1" xp:key="header" style="font-weight:bold"></xp:label>
	</xp:this.facets>
		<xp:text escape="true" id="computedField1"><xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("subject")}]]>
		</xp:this.value>	</xp:text>
	</xp:column>
	<xp:column id="column2">
	<xp:this.facets>
			<xp:label value="fruit" id="label2" xp:key="header" style="font-weight:bold"></xp:label>
	</xp:this.facets>
		<xp:text escape="true" id="computedField2"><xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("fruit")}]]>
		</xp:this.value></xp:text>
	</xp:column>
</xp:dataTable>

dateTimeHelper - 日期时间采集器

显示用于在编辑框中选择日期和时间值的采集器。

类别
核心控件
语法
<xp:dateTimeHelper attributes>content</xp:dateTimeHelper>
表 17. 基本属性
属性 描述
id 缺省值为 dateTimeHelper1dateTimeHelper2 等。
用法
在设计方式下,创建日期时间采集器控件就会自动将该控件嵌入到显示类型为日期/时间编辑框控件中。要访问日期时间采集器属性,请选择源方式,并将焦点置于嵌入的 dateTimeHelper 元素上。

在运行时,用户可以单击采集器,然后选择要插入编辑框的日期和时间。

为满足辅助功能选项合规性,请不要为 type 属性指定 both。 请考虑使用两个帮助程序,一个 type=date,一个 type=time

示例
两个编辑框中包含用于选择日期和时间值的选取器。
<xp:inputText id="inputText1">
	<xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
	<xp:this.converter>
		<xp:convertDateTime type="date"></xp:convertDateTime>
	</xp:this.converter>
</xp:inputText>
<xp:inputText id="inputText2">
	<xp:dateTimeHelper id="dateTimeHelper2"></xp:dateTimeHelper>
	<xp:this.converter>
		<xp:convertDateTime type="time"></xp:convertDateTime>
	</xp:this.converter>
</xp:inputText>

div - 分区

用作 HTML 中的内容分区或内容块。包含其他控件和文本。

类别
容器控件
语法
<xp:div attributes>content</xp:div>
表 19. 所有属性
类别 属性
辅助功能选项 roletitle
基本 attrsbindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
事件 onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
样式 disableThemestylestyleClassthemeId
用法

在运行时,页面上显示分区内容以及任何指定的属性。

示例
这些 Div 控件包含不同样式的文本和编辑框。
<xp:div style="font-weight:bold;padding-bottom:20.0px">
	Day phone =>
	<xp:inputText id="inputText2" value="#{document1.phoneday}"></xp:inputText>
</xp:div>
<xp:div style="font-weight:bold">
	Night phone => 
	<xp:inputText id="inputText3" value="#{document1.phonenight}"></xp:inputText>
</xp:div>

eventHandler - 事件处理程序(控件)

对单击控件等用户操作进行响应。

类别
其他控件
语法
<xp:eventHandler attributes>content</xp:eventHandler>
表 20. 基本属性
属性 描述
save 保存或不保存与表单相关的数据。对于类型为取消的按钮,此属性应为 false。
submit 如果此属性为 true,将向服务器发送请求并从服务器获取响应。客户端处理程序可以通过返回 false 取消发送请求。
refreshMode 指定页面刷新是已完成、部分完成还是未执行。
immediate 对于类型为取消的按钮,此属性应为 true。
用法
请参阅了解事件
示例
这是一个类型为提交的按钮控件。
<xp:button value="submit" id="button1">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
</xp:button>
这是一个类型为取消的按钮控件。
<xp:button value="cancel" id="button2">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="true" save="false">
						</xp:eventHandler>
</xp:button>
这是一个带有用户编码的 onclick 事件的按钮控件。
<xp:button value="set username" id="button3">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<![CDATA[#{javascript:getComponent("inputText2").setValue(session.getCommonUserName())}]]>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>

fileDownload - 文件下载

将文件下载到本地文件系统。

类别
核心控件
语法
<xp:fileDownload attributes>content</xp:fileDownload>
表 22. 基本属性
属性 描述
id 缺省值为 fileDownload1fileDownload2 等。
value 将文件控件绑定到数据元素或类型必须为富文本格式的其他值。
mimetype 强制使用 MIME 类型的下载,而非由文件类型确定。
useUploadName 缺省情况下使用原始文件名。
filename 如果不使用原始文件名,那么指定附件名称。
用法
在运行时,页面上显示有关任何附加文件的信息。可能包括文件类型、大小、名称、修改日期、创建日期以及用户是否能够删除附加的文件。用户可以单击名称以访问文件浏览器,下载附加的文件。
示例
此文件下载控件使用户可以从文档的正文项下载文件。
<xp:fileDownload rows="30" id="fileDownload1"
	displayLastModified="false" value="#{document2.body}">
</xp:fileDownload>

fileUpload - 文件上载

从本地文件系统上载文件。

类别
核心控件
语法
<xp:fileUpload attributes>content</xp:fileUpload>
表 24. 基本属性
属性 描述
id 缺省值为 fileUpload1fileUpload2 等。
value 将文件控件绑定到数据元素或类型必须为富文本格式的其他值。
mimetype 强制使用上载的 MIME 类型,而非由文件类型确定。
useUploadName 缺省情况下使用原始文件名。
filename 如果不使用原始文件名,那么指定附件名称。
用法
在运行时,页面上显示一个文件浏览器。用户可以从本地文件系统指定或选择文件。

保存页面时,文件将附加到数据存储中的绑定项。此项的类型必须允许文件附件,例如富文本格式类型。

示例
此文件上载控件将文件上载到文档的正文项。
<xp:fileUpload id="fileUpload1" value="#{document1.body}"></xp:fileUpload>

image - 图像

显示图像。

类别
核心控件
语法
<xp:image attributes>content</xp:image>
表 26. 基本属性
属性 描述
id 缺省值为 image1image2 等。
for 标识目标控件。
表 27. 所有属性
类别 属性
辅助功能选项 altroletitle
基本 attrsbindingdiridismaplangloadedlongdescrenderedrendererTypeurlusemapvalue
事件 onbluronclickondblclickonfocusonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
格式 heightwidth
样式 disableThemestylestyleClassthemeId
用法
在运行时,页面上显示图像。
示例
以下代码会在页面上放置一个图像。
<xp:image url="/sound.gif" id="image1" alt="Sound image"></xp:image>

include - 包含页面

插入到其他 XPage 的引用。

类别
容器控件
语法
<xp:include attributes>content</xp:include>
表 28. 基本属性
属性 描述
id 缺省值为 include1include2 等。
pageName 这是要包含的页面。
表 29. 所有属性
类别 属性
辅助功能选项 roletitle
基本 attrsbindingcomponentIddiridloadedpageNamerenderedrendererType
数据 acldatadataContextsreadonly
dojo dojoAttributesdojoType
事件 onClientLoad
样式 disableThemeouterStyleClassstylestyleClassthemeId
用法
在运行时,将显示包含的 XPage。

在设计方式下,您可以查看包含的页面,但无法对其进行修改。

示例
以下是一个包含页面控件。
<xp:include pageName="/main.xsp" id="include1"></xp:include>

inputHidden - 隐藏输入

对用户隐藏数据。

类别
核心控件
语法
<xp:inputHidden attributes>content</xp:inputHidden>
表 30. 基本属性
属性 描述
id 缺省值为 inputHidden1inputHidden2 等。
value 将控件绑定到数据元素或其他值。
用法
在运行时,页面上不显示任何内容。可以通过程序对此控件执行操作。

要访问此控件,请打开控件选用板上的其他(或单击创建 > 其他)。

示例
此隐藏输入控件绑定到 Domino 表单上的一个字段。
<xp:inputHidden id="inputHidden1" value="#{document1.description}"></xp:inputHidden>

inputRichText - 富文本格式

显示用于输入富文本格式数据的输入字段。

类别
核心控件
语法
<xp:inputRichText attributes>content</xp:inputRichText>
表 32. 基本属性
属性 描述
id 缺省值为 inputRichText1inputRichText2 等。
value 将控件绑定到数据元素或其他值。
用法
在运行时,页面上显示一个带有工具栏的编辑框。用户可以输入带有粗体和斜体等属性的文本,以及插入表、附件、嵌入对象和其他工件。

CKEditor (http://ckeditor.com) 是 XPage 的缺省富文本格式编辑器。此编辑器允许嵌入图像、表、链接和表情插图。编辑器包含拼写检查程序。

您可以调整呈现的工具栏。将焦点置于富文本格式控件上,单击 Dojo 选项卡,然后添加名为 toolbarType、值为 litemediumfull 的属性(dojoAttributes 属性)。

您可以返回到 Dojo 富文本格式编辑器。将焦点置于富文本格式控件上,单击 Dojo 选项卡,然后将 Dojo 类型(dojoType 属性)指定为 ibm.xsp.widget.layout.RichText

示例
此富文本格式控件绑定到 Domino 表单上的一个字段。
<xp:inputRichText id="inputRichText1" value="#{document1.body}"></xp:inputRichText>
此富文本格式控件使用 Dojo 编辑器。
<xp:inputRichText id="inputRichText1"
	value="#{document1.body}" dojoType="ibm.xsp.widget.layout.RichText">
</xp:inputRichText>
此富文本格式控件呈现完整的工具栏。
<xp:inputRichText id="inputRichText1" value="#{document1.body}">
	<xp:this.dojoAttributes>
		<xp:dojoAttribute name="toolbarType" value="full"></xp:dojoAttribute>
	</xp:this.dojoAttributes>
</xp:inputRichText>

inputText - 编辑框

显示用于输入单行数据的输入字段。

类别
核心控件
语法
<xp:inputText attributes>content</xp:inputText>
表 34. 基本属性
属性 描述
id 缺省值为 inputText1inputText2 等。
value 将编辑框绑定到数据元素或其他值。
用法
在运行时,页面上显示一个编辑框。用户可以在框中输入一行文本。
示例
此编辑框控件绑定到 Domino 表单上的一个字段。
<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText>
此编辑框控件绑定到作用域变量。
<xp:inputText id="inputText2" value="#{requestScope.subject}"></xp:inputText>

inputTextarea - 多行编辑框

显示用于输入多行数据的输入字段。

类别
核心控件
语法
<xp:inputTextarea attributes>content</xp:inputTextarea>
表 36. 基本属性
属性 描述
id 缺省值为 inputTextarea1inputTextarea2 等。
value 将控件绑定到数据元素或其他值。
cols 如果未被 stylewidth 属性覆盖,那么指定列数。
rows 如果未被 styleheight 属性覆盖,那么指定行数。
用法
在运行时,页面上显示一个编辑框。用户可以在框中输入多行文本。如果用户输入超过了框的大小,将显示滚动条。
示例
此多行编辑框控件绑定到 Domino 表单上的一个字段。
<xp:inputTextarea id="inputTextarea1" value="#{document1.description}"
	cols="64" rows="8">
</xp:inputTextarea>

label - 标签(控件)

显示文本。

类别
核心控件
语法
<xp:label attributes>content</xp:label>
表 38. 基本属性
属性 描述
id 缺省值为 label1label2 等。
value 指定标签的值。
for 指定当用户单击或以其他方式将焦点置于此控件上时获得焦点的控件。
表 39. 所有属性
类别 属性
辅助功能选项 accesskeyrolereadonlytitle
基本 attrsbindingdirforhtmlFilteridlangloadedrenderedrendererType
数据 convertervalue
事件 onbluronclickondblclickonfocusonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
样式 disableThemestylestyleClassthemeId
用法
在运行时,页面上显示标签的值。焦点根据指定方式重定向。

如果包含的 XPage 或面板为只读,或者,如果标签的 readonly 属性为 true,则标签控件为只读。

示例
此标签控件以蓝色显示公共用户名:
<xp:label
	value="#{javascript:session.getCommonUserName()}"
	id="label1" style="color:rgb(0,0,255)" for="inputText1">
</xp:label>
辅助功能选项合规性
要应用标签并符合辅助功能选项标准,请使用具有 for 属性的标签控件,如下所示:
<xp:label value="foo" for="inputText1" />
&#160;
<xp:inputText id="inputText1" defaultValue="foo" />
也可以应用 aria-labelledby 属性,如下所示。 但不支持 WAI-ARIA 的浏览器不支持此属性。
<xp:label value="foo" id="label1">
		&#160;
	<xp:inputText id="inputText1" defaultValue="foo" >
	<xp:this.attrs>
				<xp:attr name="aria-labelledby" value="#{id:label1}"></xp:attr>
	</xp:this.attrs>
	</xp:inputText>
</xp:label>
也可以应用 aria-label 属性,如下所示。 但此属性会生成隐藏的标签。
<xp:label value="foo" id="label1">
		&#160;
	<xp:inputText id="inputText1" defaultValue="foo" >
	<xp:this.attrs>
				<xp:attr name="aria-label" value="bar"></xp:attr>
	</xp:this.attrs>
	</xp:inputText>
</xp:label>

在以上两种替代方法情况下,请如所示方法使用该属性值的完整客户端标识。

listBox - 列表框

显示项的列表,可以选择其中一个或多个项。

类别
核心控件
语法
<xp:listBox attributes>content</xp:listBox>
表 42. 嵌入式控件
控件 描述
selectItem 提供一个项供用户选择。
selectItems 提供一个或多个项供用户选择。
表 43. 基本属性
属性 描述
id 缺省值为 listBox1listBox2 等。
value 将控件绑定到数据元素或其他值。
用法
在运行时,页面上显示一个带有项列表的框。用户可以选择一个或多个项。要选择多个项,multiple 必须为 true。

要选择多个项,绑定到列表框的数据元素必须允许多个值。

示例
此列表框控件显示两个项以供选择。
<xp:listBox id="listBox1" value="#{document1.fruit}" multiple="true">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:listBox>
此列表框控件显示两个项以供使用公式进行选择。
<xp:listBox id="listBox1" value="#{document1.fruit}"
	multiple="true">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:listBox>
此列表框从视图列中的值获取其选择项。
<xp:listBox id="listBox1" value="#{document1.fruit}"
	multiple="true">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:listBox>

message - 显示错误

显示某个控件的错误消息。

类别
核心控件
语法
<xp:message attributes>content</xp:message>
表 45. 基本属性
属性 描述
id 缺省值为 message1message2 等。
for 标识目标控件。
表 46. 所有属性
类别 属性
辅助功能选项 roletitle
基本 attrsbindingdirforidlangloadedrenderedrendererType
格式 showDetailshowSummarytooltip
样式 disableThemeerrorClasserrorStylefatalClassfatalStyleinfoClassinfoStylestylestyleClassthemeIdwarnClasswarnStyle
所有属性
用法
缺省情况下,大多数验证检查会在将请求发送到服务器之前在客户端上进行。如果验证失败,客户端将在对话框中显示错误消息,并取消服务器请求。

如果希望验证检查在服务器上进行并在此控件中显示错误消息,那么必须将目标控件的 disableClientSideValidation 设置为 true

为满足辅助功能选项需求,在使用此控件时,建议对给定的输入控件使用 aria-describedby 属性分别关联 xp:message control,如以下示例中所示。 此设置通过在输入控件获得焦点,描述关联的验证错误消息时,为用户提供描述,来支持辅助技术。

<xp:label id="xpLabel1" value="Enter any value" for="xpInputText1" />
<xp:inputText id="xpInputText1" value="#{sessionScope.foo}" required="true"
        	disableClientSideValidation="true">
	<xp:this.attrs>
		<xp:attr attr name="aria-describedby" value="#{id:msgPanel}" />
	<xp:this.attrs>

</xp:inputText>

<xp:panel id="msgPanel">
	<xp:message id="message1" for="xpInputText1"/>
</xp:panel>
注: 通过为 aria-describedby 属性指定以空格分隔的标签的客户机标识列表,可以将多个描述与一个输入控件相关联。
示例
此处,输入框绑定到数字数据,并且不在客户端一侧进行验证。以下是输入框的错误显示。
<xp:inputText id="inputText3" value="#{document1.number}"
	disableClientSideValidation="true">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
<xp:message id="message1" for="inputText3"></xp:message>
如果用户在输入框中输入非数字值,那么错误显示中将显示以下消息:
This field is not a valid number

messages - 显示错误

显示页面上所有控件的错误消息。

类别
核心控件
语法
<xp:messages attributes>content</xp:messages>
表 47. 基本属性
属性 描述
id 缺省值为 message1message2 等。
layout 布局可以是列表(缺省设置)或表。
表 48. 所有属性
类别 属性
辅助功能选项 roletitle
基本 attrsbindingdirglobalOnlyidlangloadedrenderedrendererType
格式 layoutshowDetailshowSummarytooltip
样式 disableThemeerrorClasserrorStylefatalClassfatalStyleinfoClassinfoStylestylestyleClassthemeIdwarnClasswarnStyle
用法
缺省情况下,大多数验证检查会在将请求发送到服务器之前在客户端上进行。如果验证失败,客户端将在对话框中显示错误消息,并取消服务器请求。

如果希望验证检查在服务器上进行并在此控件中显示错误消息,那么必须将目标控件的 disableClientSideValidation 设置为 true

示例
此处,输入框绑定到数字数据,并且不在客户端一侧进行验证。以下是输入框的错误显示。
<xp:inputText id="inputText3" value="#{document1.number}"
	disableClientSideValidation="true">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
<xp:message id="message1" for="inputText3"></xp:message>
如果用户在输入框中输入非数字值,那么错误显示中将显示以下消息:
This field is not a valid number

pager - 分页器

当容器控件的数据无法显示在一个窗口中时,对这些数据进行分页。

类别
核心控件
语法
<xp:pager attributes>
	<xp:pagerControl attributes></xp:pagerControl> <!--if custom for page style-->
content</xp:pager>
表 49. 基本属性
属性 描述
id (pager) 缺省值为 pager1pager2 等。

(pagerControl) 缺省值为 pagerControl1pagerControl2 等。

layout (pager) 要对控件进行布局,可使用此属性或嵌入 pagerControl 控件。
for (pager) 仅当分页器不在目标控件内时使用。
type (pagerControl) 当您在分页器中使用定制作为分页器样式时,会生成此类型。
表 50. 所有属性 (pager)
类别 属性
辅助功能选项 ariaLabelroletitle
注: 从 9.0.1 开始,已废弃 role 属性。 缺省情况下,会生成适当的合规值。 为符合辅助功能选项标准,请不要指定此属性的值。
基本 attrsalwaysCalculateLastbindingdirforidlangloadedpageCountpartialExecutepartialRefreshrenderedrendererType
格式 layoutpanelPosition
样式 disableThemeouterStyleClassstylestyleClassthemeId
表 51. 所有属性 (pagerControl)
类别 属性
辅助功能选项 accesskeyaltroletabindextitle
注: 从 9.0.1 开始,已废弃 role 属性。 缺省情况下,会生成适当的合规值。 为符合辅助功能选项标准,请不要指定此属性的值。
基本 bindingdiridlangloadedrenderedrendererTypetypevalue
事件 actionactionListeneractionListenersimmediate,onbluronclickondblclickonfocusonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
格式 image
样式 currentStyleClassdisableThemefirstStyleClasslastStyleClassstylestyleClassthemeId
用法
在运行时,用户可以单击分页器以在视图面板等允许数据迭代的控件中迭代数据。

可以将分页器置于包含数据的控件内的构面区域中。也可以通过 for 属性将分页器与数据控件关联。

分页器控件的生成方式有两种:
  • 指定布局属性。在设计方式下,单击属性下的顶部选项卡并选择分页器样式的某个样本选项。
  • 嵌入 pagerControl 控件。在设计方式下,单击属性下的顶部选项卡,然后选择分页器样式定制
示例
此视图面板控件包含一个分页器控件:
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true"
			layout="Previous Separator Group Separator Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject"
			id="viewColumnHeader1">
		</xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

pagerControl - 分页器子控件

指定公共分页器内的分页器控件。

类别
容器控件
用法
请参阅 pager

panel - 面板

用作具有共同数据源和属性的其他控件和文本的容器。

类别
容器控件
语法
<xp:panel attributes>content</xp:panel>
表 52. 所有属性
类别 属性
辅助功能选项 roletitle
基本 attrsbindingdiridloadedrenderedrendererTypetagName
数据 acldatadataContextsreadonly
dojo dojoAttributesdojoType
事件 onClientLoad
样式 disableThemeouterStyleClassstylestyleClassthemeId
用法
在运行时,页面上显示面板的内容以及任何指定的数据源和属性。
示例
此面板控件定义数据源,并包含文本和编辑框。
<xp:panel style="height:60.0px;width:408.0px">
	<xp:this.data>
		<xp:dominoDocument var="document2" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText2" value="#{document2.phoneday}"></xp:inputText>
	day phone	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document2.phonenight}"></xp:inputText>
	night phone
</xp:panel>

paragraph - 段落

以段落格式组合文本。

类别
其他控件
语法
<xp:paragraph attributes>content</xp:paragraph>
表 53. 基本属性
属性 描述
id 缺省值为 paragraph1paragraph2 等。
表 54. 所有属性
类别 属性
辅助功能选项 roletitle
基本 attrsbindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
事件 onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
样式 disableThemestylestyleClassthemeId
用法

在运行时,页面上显示段落的内容以及任何指定的属性。

示例
此段落控件创建一个粗体文本段落。
<xp:paragraph id="paragraph1" style="font-weight:bold>Now is the time.</xp:paragraph>

platformEvent - 平台事件控件

处理平台事件。

类别
其他控件
语法
<xp:platformEvent attributes>content</xp:platformEvent>
表 55. 基本属性
属性 描述
id 缺省值为 platformEvent1platformEvent2 等。
表 56. 所有属性
类别 属性
基本 bindingeventNameidlangloadedrenderedrendererType
  onevent
样式 disableThemethemeId
用法

平台事件用于在 Notes 客户端中发布组合应用程序事件。

radio - 单选按钮

显示可以选中或清除的按钮。如果已分组,那么只能选中该组中的一个按钮。

类别
核心控件
语法
<xp:radio attributes>content</xp:radio>
表 57. 基本属性
属性 描述
id 缺省值为 radio1radio2 等。
text 提供标签。
value 将控件绑定到数据元素或其他值。
selectedValue 指定选中该按钮时的数据值。
defaultSelected 指定 true 表示缺省情况下选中该按钮。
groupName 将单选按钮指定给某个组。
skipContainers 将不同容器(例如数据表中各列)中的单选按钮指定给同一个组。
用法
在运行时,页面上显示一个按钮。用户可以将其选中或清除。选中时按钮将显示为已填充。

当选中某个按钮时,将清除指定给同一组的所有其他按钮。

将按钮指定给组类似于创建单选按钮组控件。使用指定了组的单个按钮可为您提供布局方面的灵活性。

为满足辅助功能选项合规性,请勿将此控件用于组,仅可用于单个按钮。 将单选按钮组用于组。

示例
这些单选按钮控件会根据选择将值 applesoranges 指定给 document1.fruit。按钮行为协调一致。如果选中 apples,就会清除 oranges。请注意:此示例不满足辅助功能选项合规性。
<xp:radio text="Apples" id="radio1" value="#{document1.fruit}"
	groupName="fruit" selectedValue="apples">
</xp:radio>
<xp:radio text="Oranges" id="radio2" value="#{document1.fruit}"
	groupName="fruit" selectedValue="oranges">
</xp:radio>

radioGroup - 单选按钮组

显示可以选中或清除的多个按钮。只能选中该组中的一个按钮。

类别
核心控件
语法
<xp:radioGroup attributes>content</xp:radioGroup>
表 59. 嵌入式控件
控件 描述
selectItem 提供一个项供用户选择。
selectItems 提供一个或多个项供用户选择。
表 60. 基本属性
属性 描述
id 缺省值为 radioGroup1radioGroup2 等。
text 提供标签。
value 将控件绑定到数据元素或其他值。
legend 提供屏幕可读组描述。
用法
在运行时,页面上显示一个或多个单选按钮。用户可以选中一个按钮。当选中某个按钮时,将清除其他所有已选中的按钮。

为满足辅助功能选项合规性,必须指定 legend 属性。

示例
此单选按钮组控件显示两个项以供选择。
<xp:radioGroup id="radioGroup1" legend="Select fruit" value="#{document1.fruit}" layout="pageDirection">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:radioGroup>
此单选按钮组控件显示两个项以供使用公式进行选择。
<xp:radioGroup id="radioGroup1" legend="Select fruit" value="#{document1.fruit}"
	layout="pageDirection">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:radioGroup>
此复选框组会根据视图列中的值获取其要选择的项。
<xp:radioGroup id="radioGroup1" legend="Select fruit" value="#{document1.fruit}"
	layout="pageDirection">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:radioGroup>

repeat - 重复

通过迭代数据源来重复已嵌入的控件。

类别
容器控件
语法
<xp:repeat attributes>
	contol ...
</xp:repeat>
表 62. 基本属性
属性 描述
id 缺省值为 repeat1repeat2 等。
value 通常,数据绑定指向元素的集合,例如 NotesDocumentCollection 对象。
var 通常,此变量引用绑定数据集合的某个成员,例如,如果绑定指向 NotesDocumentCollection 对象,那么此变量引用 NotesDocument 对象。
表 63. 所有属性
类别 属性
辅助功能选项 role
基本 attrsbindingdiridlangloadedremoveRepeatrenderedrendererTyperepeatControlsrowAttrs
数据 firstindexVarrowsvaluevar
样式 disableThemestylestyleClassthemeId
用法
在运行时,页面上显示控件的重复内容。在重复控件的内容中使用 var,以重复数据源每个成员的内容。
示例
此重复控件显示当前数据库中所有文档的 subject 项。
<xp:repeat id="repeat1" rows="30"
	value="#{javascript:return database.getAllDocuments()}" var="rowdoc"
	repeatControls="true">
	<xp:text escape="true" id="computedField1">
		<xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("subject") + " "}]]>
		</xp:this.value>
	</xp:text>
</xp:repeat>

scriptBlock - 输出脚本

输出客户端脚本。

类别
核心控件
语法
<xp:scriptBlock attributes>content</xp:scriptBlock>
表 64. 基本属性
属性 描述
id 缺省值为 scriptBlock1scriptBlock2 等。
value 指定客户端脚本。
表 65. 所有属性
类别 属性
基本 attrsbindingcharsetdeferidloadedrenderedrendererTypesrctype
数据 convertervalue
dojo dojoArgsdojoEvent
样式 disableThemethemeId
用法
该控件仅应用于定制控件。

在运行时,脚本在将包含定制控件的 XPage 装入客户端时执行。

示例
该“输出脚本”控件位于定制控件中。在嵌入 XPage 中并且该 XPage 打开时,该控件会显示一个警报框。
<xp:scriptBlock id="scriptBlock2" type="text/javascript">
	<xp:this.value><![CDATA[alert("hello custom")]]></xp:this.value>
</xp:scriptBlock>

section - 区段

用作其他控件和文本的可折叠容器。

类别
容器控件
语法
<xp:section attributes>content</xp:section>
表 66. 基本属性
属性 描述
id 缺省值为 section1section2 等。
header 标题显示在区段顶部,并在区段折叠时显示。
type 格式类型包括:
  • default:无边框
  • wide:底部显示灰色条
  • box:四边显示灰色条
  • tab:箭头及箭头下方的区段内容显示灰色背景
initClosed 缺省情况下区段初始处于打开状态。
用法
在运行时,页面上显示区段:
  • 关闭的区段仅显示标题。
  • 打开的区段显示标题和内容。
用户可以打开和关闭区段。
示例
此区段包含两个编辑框。
<xp:section id="section1" header="Phone numbers" type="tab"
	initClosed="true">
	<xp:inputText id="inputText2" value="#{document1.phoneday}"></xp:inputText>day
	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document1.phonenight}"></xp:inputText>night
</xp:section>

selectItem - 选择单项

提供项以供用户选择,例如在复选框中提供。

类别
语法
<xp:selectItem attributes>content</xp:selectItem>
表 68. 基本属性
属性 描述
itemLabel 提供对用户显示的文本。必需。
itemValue 提供用户选择此项时父控件的值。必需。
表 69. 所有属性
类别 属性
基本 attrsbindingiditemDescriptionitemDisableditemLabelrenderedrendererType
数据 itemValuevalue
格式 disableThemethemeId
用法
将此控件嵌入其他控件中,为父控件提供选择项。

在设计方式下,将焦点置于要包含选择项的控件上,然后单击属性下的选项卡。使用添加项导入列表来创建 selectItem 控件。

要在所有属性下查看选择项属性,必须切换到源方式,然后将焦点置于嵌入的 selectItem 控件上(相对于父控件)。

示例
此复选框组控件包含两个项以供选择。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:checkBoxGroup>

selectItems - 选择项

提供一个或多个项以供用户选择,例如在复选框中提供。

类别
语法
<xp:selectItems attributes>content</xp:selectItems>
表 70. 基本属性
属性 描述
value 为一个或多个描述项提供标签、值、描述和禁用标志。此处的值不同于数据绑定。
表 71. 所有属性
类别 属性
基本 attrsbindingidloadedrenderedrendererType
数据 value
格式 disableThemethemeId
用法
将此控件嵌入其他控件中,为父控件提供选择项。

在设计方式下,将焦点置于要包含选择项的控件上,然后单击属性下的选项卡。使用添加公式项以创建 selectItems 控件。

要在所有属性下查看选择项属性,必须切换到源方式,然后将焦点置于嵌入的 selectItems 控件上(相对于父控件)。

值公式必须返回一个数组。数组的每个元素都必须定义格式如下所示的一个选择单项:
label|value|description|disabled
其中只有 label 为必需。竖线是语法的一部分。

如果未指定 value,那么缺省值为 label。将 disabled 指定为 true 可禁用选择单项(使其显示为灰色)。

对于返回值,可以分解 (@Explode) @DbColumn@DbLookup 的结果。

示例
此复选框组控件包含两个项以供选择。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples", "Oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
此复选框组控件为标签和值使用不同的名称。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
此复选框组控件会禁用第一个选择。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples||true", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
此复选框组会根据视图列中的值获取其要选择的项。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

span - 范围内容

合并文本,通常用于属性的应用。

类别
核心控件
语法
<xp:span attributes>content</xp:span>
表 72. 所有属性
类别 属性
辅助功能选项 roletitle
基本 attrsbindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
事件 onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
样式 disableThemestylestyleClassthemeId
用法

在运行时,页面上显示范围的内容以及任何指定的属性。

通常情况下,不直接应用此控件。如果您突出显示页面上的文本,然后应用粗体等属性,就会自动创建范围。

要直接带空格进行操作,最好使用源方式。

示例
以下是用于使文本变为粗体的范围控件:
<xp:span id="span1" style="font-weight:bold">
	Now is the time.
</xp:span>

tabbedPanel - 选项卡式面板

用作其他控件和文本的容器集合。

类别
容器控件
语法
<xp:tabbedPanel attributes>
	<xp:tabPanel attributes>content</xp:tabPanel></xp:tabbedPanel>
	...
</xp:tabbedPanel>
表 73. 基本属性
属性 描述
id (tabbedPanel) 缺省值为 tabbedPanel1tabbedPanel2 等。

(tabPanel) 缺省值为 tabPanel1tabPanel2 等。

selectedTab (tabbedPanel) 初始情况下将选项卡式面板打开到此选项卡。
text (tabPanel) 提供选项卡的标签。
表 74. 所有属性 (tabbedPanel)
类别 属性
辅助功能选项 roletitle
注: 从 9.0.1 开始,已废弃 role 属性。 缺省情况下,会生成适当的合规值。 为符合辅助功能选项标准,请不要指定此属性的值。
基本 attrsbindingdiridlangloadedrenderedrendererTypeselectedTab
样式 containerStyleClassdisableThemeouterStyleClassstylestyleClassthemeId
表 75. 所有属性 (tabPanel)
类别 属性
辅助功能选项 imageAltroletitle
注: 从 9.0.1 开始,已废弃 role 属性。 缺省情况下,会生成适当的合规值。 为符合辅助功能选项标准,请不要指定此属性的值。
基本 bindingdirhrefidimagelabellangloadedrenderedrendererType
事件 onClick
样式 contentStyleClassdisableThemeendTabStyleClassmiddleTabStyleClassselectedTabStyleClassstartTabStyleClassstylestyleClassthemeIdunselectedTabStyleClass
用法
在运行时,页面上显示已选定选项卡面板的内容。可以看到其他选项卡,但看不到其内容。用户可通过选择选项卡来更改面板。
在设计方式下,将焦点置于选项卡式面板上即可选择 tabbedPanel 元素。要对 tabPanel 元素进行操作,请右键单击或使用菜单执行以下操作:
  • 选择活动的选项卡内容可将焦点置于焦点所在选项卡的 tabPanel 元素上。
  • 除去活动的选项卡可除去焦点所在选项卡的 tabPanel 元素。
  • 插入选项卡可插入新的 tabPanel 元素。
  • 追加选项卡可追加新的 tabPanel 元素。
示例
此选项卡式面板控件有两个面板。
<xp:tabbedPanel id="tabbedPanel1" selectedTab="tabPanel1">
	<xp:tabPanel id="tabPanel1" label="Day">
		<xp:inputText id="inputText2"
			value="#{document1.phoneday}">
		</xp:inputText>
	</xp:tabPanel>
	<xp:tabPanel label="Night" id="tabPanel2">
		<xp:inputText id="inputText3"
			value="#{document1.phonenight}">
		</xp:inputText>
	</xp:tabPanel>
</xp:tabbedPanel>

table - 表

包含排列为行和列的单元格。每个单元格可以包含其他控件(包括表)和文本。

类别
容器控件
语法
<xp:table attributes>
	<xp:tr attributes>
			<xp:td attributes>cell content</xp:td>
			...
	</xp:tr>
	...
</xp:table>
表 77. 所有属性 (tr)
类别 属性
辅助功能选项 roletitle
基本 bindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
事件 onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
格式 alignvalign
样式 disableThemestylestyleClassthemeId
表 78. 所有属性 (td)
类别 属性
辅助功能选项 roletitle
基本 bindingdiridlangloadedrenderedrendererType
dojo dojoAttributesdojoType
事件 onclickondblclickonkeydownonkeypressonkeyuponmousedownonmousemoveonmouseoutonmouseoveronmouseup
格式 aligncolspanrowspanvalign
样式 disableThemestylestyleClassthemeId
用法
在运行时,页面上显示表。用户每次可以访问表的一个单元格。
当您在设计方式下在 XPage 上插入表时,将显示一个对话框,询问行数和列数。创建表后,可以:
  • 添加和删除行和列。
  • 合并单元格。
  • 选择一个或多个单元格。
  • 添加和删除单元格内容。

使用此控件在视觉效果好的布局中显示文本和图像。 缺省情况下,role 属性为 presentation。 为满足辅助功能选项合规性,请勿将此控件用于除可视布局之外的其他用途,请勿将 role 属性更改为 presentation 以外的值。 对于表数据,请使用数据表控件。

示例
此表包含排列为 2 行和 2 列的 4 个单元格。
<xp:table>
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

text - 计算字段

显示值。

类别
核心控件
语法
<xp:text attributes>content</xp:text>
表 79. 基本属性
属性 描述
id 缺省值为 computedField1computedField2 等。
value 将计算字段绑定到数据元素或其他值。
表 80. 所有属性
类别 属性
辅助功能选项 roletitle
基本 attrsbindingdirescapeforhtmlFilteridlangloadedrenderedrendererTypetagName
数据 convertervalue
格式 contentType
样式 disableThemeouterStyleClassstylestyleClassthemeId
用法

在运行时,页面上显示计算字段的值。

示例
此计算字段控件显示两个作用域变量的和:
<xp:text escape="true" id="computedField1"
	value="#{javascript:return requestScope.number1 + requestScope.number2}">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:text>
此计算字段控件显示绑定到当前 XPage 的数据元素的值。
<xp:text escape="true" id="computedField4" value="#{document1.subject}"></xp:text>

typeAhead - AJAX 预输入

当用户输入匹配指定建议的一系列字符时,自动填充其父控件。

类别
其他控件
语法
<xp:typeAhead attributes>content</xp:typeAhead>
表 81. 基本属性
属性 描述
mode 刷新方式。
minChars 触发预输入的最小字符数。
valueList 当输入初始字符时返回的建议。
valueListSeparator 建议分隔符。
tokens 在用户机器指定建议的情况下,表示客户端分隔符。
ignoreCase 是区分还是忽略大小写。
用法
将此控件嵌入其他控件中,以影响对父控件的输入。

在设计方式下,将焦点置于要获取预输入的控件上,然后单击属性下的预输入选项卡。选中启用预输入会将预输入控件嵌入当前控件。

要在所有属性下查看预输入属性,必须切换到源方式,然后将焦点置于嵌入的 typeAhead 控件上(相对于父控件)。

示例
此编辑框控件提供预输入。
<xp:inputText id="inputText1" value="#{document1.subject}">
	<xp:typeAhead mode="full" minChars="1"
	valueList="alpha#beta#charlie#delta#echo#foxtrot"
	valueListSeparator="#" tokens=",/" ignoreCase="true">
</xp:typeAhead></xp:inputText>

view - XPage

定义顶级容器控件本身,即 XPage 本身。

类别
所有属性
用法
在运行时,装入页面时将应用页面属性。

在设计方式下,将焦点置于页面上所有控件以外,以查看页面属性。

示例
此 XPage 定义数据源,并包含编辑框和按钮。
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1"
		value="#{document1.subject}" style="font-weight:bold">
	</xp:inputText>
	<xp:button value="submit" id="button1" 	style="font-weight:bold">
		<xp:eventHandler event="onclick"
			submit="true" refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
	</xp:button>
</xp:view>

viewPanel - 视图

以行和列显示来自文档的数据。

类别
容器控件
语法
<xp:viewPanel attributes>
	<xp:this.facets>
		<xp:pager attributes></xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView attributes></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn attributes">
		<xp:viewColumnHeader attributes></xp:viewColumnHeader>
	</xp:viewColumn>
	...
</xp:viewPanel>
表 84. 基本属性
属性 描述
id (viewPanel) 缺省值为 viewPanel1viewPanel2 等。

(viewColumn) 缺省值为 viewColumn1viewColumn2 等。

(viewColumnHeader) 缺省值为 viewColumnHeader1viewColumnHeader2 等。

rows (viewPanel) 这是一次显示的行数,缺省情况下为 30。
data (viewPanel) 将 Domino 视图绑定到控件。
pageName (viewPanel) 缺省情况下,当列项为链接时,与文档表单关联的 XPage 用于打开选定文档。此处可以使用指定的 XPage。
columnName (viewColumn) 来自数据源的列名通过视图创建对话框设置,并可以在将来更改。
displayAs, (viewColumn) 缺省情况下,项显示为文本。指定 displayAs="link" 可将这些项更改为指向底层文档的链接。
value (viewColumnHeader) 这是列标题的标签。
表 85. 所有属性 (viewPanel)
类别 属性
辅助功能选项 captionrolesummarytitle
注: 从 9.0.1 开始,已废弃 role 属性。 缺省情况下,会生成适当的合规值。 为符合辅助功能选项标准,请不要指定此属性的值。 请参阅用法部分以获取有关辅助功能选项合规性的进一步信息。
基本 attrsbindingdiridlangloadedpartialExecutepartialRefreshrefreshIdrenderedrendererTyperowAttrstarget
数据 datafirstindexVarpageNamerowsvaluevar
格式 cellpaddingcellspacingheightshowColumnHeadershowUnreadMarkswidth
样式 captionStyleClasscolumnClassesdataTableStyledataTableStyleClassdisableThemereadMarksClassrowClassesthemeIdunreadMarksClassviewStyleviewStyleClass
表 86. 所有属性 (viewColumn)
类别 属性
辅助功能选项 role
基本 attrsbindingcolumnNamedisplayAshtmlFilteridloadedrenderedrendererTypewidth
数据 converteropenDocAsReadonlypageUrlvalue
事件 onClick
格式 collapsedImagecontentTypeexpandedImageiconAlticonSrcindentResponsesshowCheckbox
样式 disableThemestylestyleClassthemeId
表 87. 所有属性 (viewColumnHeader)
类别 属性
辅助功能选项 role
基本 attrsbindinghtmlFilteridloadedrenderedrendererTypesortablevalue
格式 contentTypeiconAlticonSrcshowCheckbox
样式 disableThemestylestyleClassthemeId
分页器
根据设计规范,包含一个或多个分页器的构面区域是视图的一部分。可以将其他控件(如面板)置于构面区域中。使用源方式在构面区域内工作。

以下是分页器控件的样本构面:

	<xp:this.facets>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="headerPager" id="pager1">
	</xp:pager>
	<xp:viewTitle xp:key="viewTitle" id="viewTitle1" value="View Title"></xp:viewTitle>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="footerPager" id="pager2">
	</xp:pager>
</xp:this.facets>
位于属性显示选项卡上的以下框以如下方式影响构面内容:
  • 在页眉中显示分页器(缺省情况下选中)生成键 headerPagerpager 控件。如果清除此框,那么不会生成任何构面区域。
  • 在页脚中显示分页器(缺省情况下清除)生成键 footerPagerpager 控件。
  • 显示标题(缺省情况下清除)生成 viewTitle 控件。
用法
视图控件实质上显示 Domino 视图。在设计方式下,当您创建 viewPanel 控件时,在对话框中提供绑定的 Domino 视图的名称和其他信息。创建之后,可以右键单击或使用菜单添加、插入、追加和删除列。

当配置视图以显示数据类别时,用户可以在运行时展开和折叠(切换)类别。缺省情况下,类别已折叠。当用户切换类别时,XPage 会重新装入,这样该 XPage 上的数据就会与服务器保持同步。

对于分页,一个折叠的类别算作一行。例如,如果您将分页器配置为浏览五行,且在视图中有五行折叠的数据,那么每次用户单击后退或前进按钮时,分页器都会计算五个类别,而不是计算单个隐藏的行。此外,当用户在各个数据页面之间来回浏览时,各类别的切换状态保持不变。

未就最新辅助功能选项标准对这些控件进行测试。 建议的辅助功能路径为数据视图控件。

示例
此视图面板控件有两列。
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

属性参考

此处指定 XPage 属性。

accept - 接受

列出已上载文件的可接受 MIME 类型。

类别
基本
语法
accept="text/html|image/png|image/gif|video/mpeg|text/css|audio/basic"
用法
在设计方式下,单击所有属性,然后在基本下查找 accept

缺省情况下,所有 MIME 类型均可接受。

accesskey - 加速键

指定与 ALT 键结合使用以将焦点置于某个控件上的字符。

类别
辅助功能选项
语法
accesskey="key"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找加速键;或单击所有属性,然后在辅助功能选项下查找 accesskey

对于希望使用键盘来浏览的用户以及那些有视力障碍、需要依靠 HTML accesskey 属性的用户而言,提供键盘键组合很有用。 有关加速键限制的信息,请参阅您的浏览器文档。

示例
当用户按 ALT > b 时,将选中此编辑框控件。
<xp:inputText id="inputText1" value="#{document1.subject}" accesskey="b"></xp:inputText>

acl - 访问控制表

定义页面或控件的访问控制表。

类别
数据
语法
<xp:this.acl>
	<xp:acl loaded="true|false">
		<xp:this.entries>
			<xp:aclEntry attributes fullName="name" name="name"
				right="NOACCESS|READER|EDITOR"
				type="USER|GROUP|ROLE|ORGUNIT|ORGROLE|DEFAULT|ANONYMOUS"
				loaded="true|false">
			</xp:aclEntry>
			...
		</xp:this.entries>
	</xp:acl>
</xp:this.acl>
用法
在设计方式下,确保焦点位于页面或容器控件上。单击所有属性,然后在数据下查找 acl

此属性适用于页面和部分容器控件。

包含的属性
loaded="true|false"
装入控件时,创建或不创建标记实例。
fullName="name"
如果 name 不是用户的全名,那么此属性指定全名。
name="name"
指定条目的名称。
right="NOACCESS|READER|EDITOR"
定义条目的访问权。
type="USER|GROUP|ROLE|ORGUNIT|ORGROLE|DEFAULT|ANONYMOUS"
定义条目的类型。
loaded="true|false"
装入条目时,创建或不创建标记实例。
示例
此面板定义具有两个条目的 ACL。
<xp:panel style="height:60.0px;width:408.0px">
	<xp:this.data>
		<xp:dominoDocument var="document2" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:this.acl>
		<xp:acl>
			<xp:this.entries>
				<xp:aclEntry name="CN=Mary Moffit/O=IBM"
					right="EDITOR" type="USER">
				</xp:aclEntry></xp:aclEntry>
				<xp:aclEntry name="John Jordon/O=IBM" right="READER"
					type="USER">
				</xp:aclEntry>
			</xp:this.entries>
		</xp:acl>
	</xp:this.acl>
	<xp:inputText id="inputText2" value="#{document2.phoneday}"></xp:inputText>
		day phone	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document2.phonenight}"></xp:inputText>
		night phone
</xp:panel>

action - 应用程序操作

指定用户激活控件时要调用的 MethodBinding 应用程序操作。

类别
事件
语法
action="action"
用法
操作值必须是不使用任何参数并且返回字符串的公用方法。字符串将传递到此应用程序的 NavigationHandler

actionListener - 操作 listener

指定用户激活控件时要通知的 MethodBinding 操作 listener。

类别
事件
语法
actionListener="listener"
用法
actionListener 值必须是使用 ActionEvent 参数并且返回空的公用方法。

actionListeners - 操作 listener 列表

指定操作 listener 集合。

类别
事件
语法
<xp:this.actionListeners>
	<xp:actionListener type="javaclass"></xp:actionListener>
	...
</xp:this.actionListeners>

afterPageLoad - 页装入后方法绑定

页面装入后激活事件处理程序。

类别
事件
语法
<xp:view><xp:this.afterPageLoad attributes>content</xp:afterPageLoad></xp:view>
用法
有关详细的事件处理程序语法,请参阅 eventHandler - 事件处理程序(属性)

afterRenderResponse - 渲染响应后方法绑定

在 JSF 周期的渲染响应阶段后激活事件处理程序。

类别
事件
语法
<xp:view><xp:this.afterRenderResponse attributes>content</xp:afterRenderResponse></xp:view>
用法
有关详细的事件处理程序语法,请参阅 eventHandler - 事件处理程序(属性)

afterRestoreView - 恢复视图后方法绑定

在 JSF 周期的恢复视图阶段后激活事件处理程序。

类别
事件
语法
<xp:view><xp:this.afterRestoreView attributes>content</xp:afterRestoreView></xp:view>
用法
有关详细的事件处理程序语法,请参阅 eventHandler - 事件处理程序(属性)

align - 对齐

使内容在容器中对齐。

类别
格式
语法
align="left|center|right"
用法
在设计方式下,单击所有属性,然后在格式下查找 align

allowDelete - 允许删除文件

允许或不允许用户删除附加的文件。

类别
基本
语法
allowDelete="true|false"
用法
在设计方式下,单击所有属性,然后在基本下查找 allowDelete

缺省情况下,将装入一个控件。

alt - 备用文本

指定无法呈现图像时要显示的文本。

类别
辅助功能选项
语法
alt="text"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找备用文本;或单击所有属性,然后在辅助功能选项下查找 alt

alwaysCalculateLast - 始终计算最后一个

始终计算容器中的最后一个文档。

类别
基本
语法
alwaysCalculateLast="true|false"
用法
在设计方式下,单击所有属性,然后在基本下查找 alwaysCalculateLast

将此属性设置为 true 可能会影响性能。

ariaLabel - ARIA 标签(属性)

为控件的辅助技术标签指定描述性文本。

注: 此属性是 R9.0.1 的新增属性。
类别
辅助功能选项
语法
ariaLabel="text"
用法
在“设计”模式下,单击所有属性,然后在 accessibility 下查找 ariaLabel

attrs - 属性列表

将属性添加到控件。仅当未提供属性作为特性时才使用该特性。

类别
基本
语法
<xp:this.attrs>
	<xp:attr attributename="attributevalue" ...</xp:attr>
	...
</xp:this.attrs>
用法
在设计方式下,单击所有属性,然后在基本下查找 attrs
属性
至少应该设置 namevalue
表 88. 属性
属性 描述
loaded="true|false"
在装入(缺省值)或未装入页面时创建属性。
minimized="true|false"
在 HTML 中将属性最小化(仅呈现名称而不呈现值),或者不将其最小化(缺省值)。
name="name"
有效 HTML 属性的名称。
rendered="true|false"
呈现(缺省值)或不呈现属性。
uri="true|false"
value 视为 URI,或者不视为 URI(缺省值)。 不带协议的 URI 值(例如,http://)相对于当前应用程序。URL 编码有效,因此使用 %20 表示空格。
value="value"
属性的值。如果 minimized 为 true,那么不呈现。
用法
该特性允许包含不存在控件特性的 HTML 属性。请勿将 attrs 用于可通过指定控件特性而生成的属性。
示例
此编辑框将添加 autofocus 属性而不呈现其值。
<xp:inputText id="inputText3">
	<xp:this.attrs>
		<xp:attr name="autofocus" value="autofocus" minimized="true"></xp:attr>
	</xp:this.attrs>
</xp:inputText>
email 类型的此编辑框将添加 placeholder 属性。
<xp:inputText id="inputText3" type="email">
	<xp:this.attrs>
		<xp:attr name="placeholder" value="a@b.com"></xp:attr>
	</xp:this.attrs>
</xp:inputText>

autocomplete - 自动完成

启用或禁用记住并自动完成用户输入的浏览器功能。

类别
基本
语法
autocomplete="on|off"
用法
在设计方式下,单击所有属性,然后在基本下查找 autocomplete

缺省情况下,自动完成已启用。

示例
此编辑框控件禁用自动完成。
<xp:inputText id="inputText1" value="#{document1.subject}"
	title="Subject edit box" autocomplete="off">
</xp:inputText>

beforePageLoad - 页装入前方法绑定

页面装入前激活事件处理程序。

类别
事件
语法
<xp:view><xp:this.beforePageLoad attributes>content</xp:beforePageLoad></xp:view>
用法
有关详细的事件处理程序语法,请参阅 eventHandler - 事件处理程序(属性)

beforeRenderResponse - 渲染响应前方法绑定

在 JSF 周期的渲染响应阶段前激活事件处理程序。

类别
事件
语法
<xp:view><xp:this.beforeRenderResponse attributes>content</xp:beforeRenderResponse></xp:view>
用法
有关详细的事件处理程序语法,请参阅 eventHandler - 事件处理程序(属性)

bgcolor - 背景色

指定背景色。

类别
格式
语法
bgcolor="color"
用法
在设计方式下,单击所有属性,然后在格式下查找 bgcolor

binding - 控件绑定

指定将控件绑定到控件属性的表达式。

类别
基本
语法
binding="expression"
用法
在设计方式下,单击所有属性,然后在基本下查找 binding
示例

border - 表边框

指定表或控件组四周边框的宽度,以像素为单位。

类别
格式
语法
border="n"
用法
在设计方式下,单击所有属性,然后在格式下查找 border

缺省情况下,控件组无边框 (border="0")。

示例
此复选框组使用 16 像素的边框。
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}"
	border="16">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

caption - 文字说明

在容器控件上方显示文字说明。

类别
辅助功能选项
语法
caption="caption"
用法
在设计方式下,单击所有属性,然后在辅助功能选项下查找 caption

在运行时,当用户将光标悬停在控件上方时,标题显示在框中。

示例
此表具有文字说明。
<xp:table caption="Test caption">>
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

captionStyleClass - 文字说明 CSS 样式类

指定要为表文字说明应用的 CSS 类的列表。

类别
样式
语法
captionStyleClass="name ..."
其中 name 标识类。使用空格分隔多个类名。
用法
在设计方式下,单击所有属性,然后在样式下查找 captionStyleClass

cellpadding - 单元格边距

指定表单元格边框与其内容之间的距离,以像素为单位。

类别
格式
语法
cellpadding="n"
用法
在设计方式下,单击所有属性,然后在格式下查找 cellpadding

缺省情况下,控件组无边框 (border="0")。

示例
此表控件指定单元格间距和边距。
<xp:table cellspacing="16" cellpadding="16">
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

cellspacing - 单元格间距

指定表边框与单元格之间以及单元格之间的距离,以像素为单位。

类别
格式
语法
cellspacing="n"
用法
在设计方式下,单击所有属性,然后在格式下查找 cellspacing

缺省情况下,控件组无边框 (border="0")。

示例
此表控件指定单元格间距。
<xp:table cellspacing="16">
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

charset - 字符集

指定检索到的资源的字符编码。

类别
基本
语法
charset="encoding"
用法
在设计方式下,单击所有属性,然后在基本下查找 charset

checkedValue - 选中时的值

指定绑定到已选中(相对于已清除)控件的数据元素的值。

类别
数据
语法
checkedValue="value"
用法
在设计方式下,单击属性下的数据,然后查找选中时的值;或单击所有属性,然后在数据下查找 checkedValue

此属性适用于可以选中或清除的控件(如复选框),并且缺省值为字符串 true

示例
此复选框控件根据复选框是处于选中(缺省情况下)还是清除状态来指定一个数据值。
<xp:checkBox id="checkBox2" text="Use user name instead of Anonymous"
	defaultChecked="true" value="#{document1.loginname}" uncheckedValue="Anonymous"
	checkedValue="#{javascript:session.getUserName()}">
</xp:checkBox>

collapsedImage - 折叠区段图像

指定折叠区段的图像。

类别
基本
语法
collapsedImage="pathname"
用法
在设计方式下,单击所有属性,然后在基本下查找 collapsedImage

对于应用程序资源,图像路径相对于应用程序,例如 /abook.gif

cols - 列数

指定要显示的列数。

类别
基本
语法
cols="n"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找列数;或单击所有属性,然后在基本下查找 cols

style 属性 (property) 的 width 属性 (attribute) 覆盖此值。

示例
此多行编辑框控件指定行数和列数。
<xp:inputTextarea id="inputTextarea1" value="#{document1.description}"
	cols="64" rows="8">
</xp:inputTextarea>

colspan - 列跨度

指定当前单元格跨越的列数。

类别
基本
语法
colspan="n"
其中 n 是列数,0 表示跨越列组中的所有列。
用法
在设计方式下,单击所有属性,然后在格式下查找 colspan

缺省值为 1。

columnClasses - 列 CSS 类

指定要为视图或表列应用的 CSS 类的列表。

类别
样式
语法
columnClasses="name ..."
其中 name 标识类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 columnClasses

columnName - 列名

指定数据源中基础视图列的名称。

类别
基本
语法
columnName="name"
其中 name 与数据源中的列名匹配。
用法
在设计方式下,单击属性下的数据选项卡,然后查找视图列;或单击所有属性,然后在基本下查找 columnName

在运行时,父视图列显示来自数据源中基础列的数据。

指定与数据源中列名不匹配的值会导致在运行时发生错误。

示例
此视图控件包含基于数据源中 subjectfruit 列的两列。
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

componentId - 控件标识

指定所包含页面上控件的标识。

类别
基本
语法
componentId="identifier"
用法
在设计方式下,单击所有属性,然后在基本下查找 componentId

如果此属性为空,那么将包含整个页面。

computeDocument - 计算文档方法绑定

计算或重新计算文档时激活事件处理程序。

类别
事件
语法
<xp:dominoDocument><xp:this.computeDocument attributes>content</xp:computeDocument></xp:dominoDocument>
用法
有关详细的事件处理程序语法,请参阅 eventHandler - 事件处理程序(属性)

containerStyleClass - CSS 容器样式类

指定呈现容器控件时要应用的 CSS 类的列表。

类别
样式
语法
containerStyleClass="name ..."
其中 name 标识类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 containerStyleClass

这将导致呈现一个外层范围,并且 class= 设置为这些值。

contentStyleClass - 选项卡内容类

指定当选项卡内容没有样式时要为其应用的 CSS 类的列表。

类别
样式
语法
contentStyleClass="name ..."
其中 name 标识类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 contentStyleClass

这将导致呈现一个外层范围,并且 class= 设置为这些值。

contentType - 内容类型

指定内容类型,即文本或 HTML。

类别
格式
语法
contentType="text|html"
用法
在设计方式下,单击所有属性,然后在格式下查找 contentType

缺省内容类型是 text

示例
此计算字段控件使用 HTML 作为内容类型。
<xp:text escape="true" id="computedField1"
	value="#{javascript:return requestScope.number1 + requestScope.number2}"
	contentType="html">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:text>

converter - 转换器

定义数据格式(如果不是字符串)。

类别
数据
语法
<xp:this.converter>converter</xp:this.converter>
其中 converter 为以下某个值:
<xp:convertBoolean attributes>content</xp:convertBoolean>
<xp:convertNumber attributes>content</xp:convertNumber>
<xp:convertDateTime attributes>content</xp:convertDateTime>
<xp:convertMask attributes>content</xp:convertMask>
<xp:customConverter></xp:customConverter>
用法
在设计方式下,单击属性下的数据选项卡,然后查找显示类型;或单击所有属性,然后在数据下查找 converter
包含的属性
转换器具有以下属性。
表 89. 用于布尔值转换的包含的属性
属性 描述
loaded="true|false"
装入页面时是否创建标记实例。缺省值为 true。
message="message text"
如果 strict="true" 且用户输入 truefalse 之外的值,为用户发送的消息。数据提交时会显示该消息。
strict="true|false"
如果为 true,仅接受输入值 truefalse。缺省情况下,true 之外的任何输入值都将视为 false。
表 90. 用于数字转换的包含的属性
属性 描述
currencyCode="option"
ISO 4712 货币代码,例如 USD
currencySymbol="symbol"
货币符号。
groupingUsed="true|false"
是否使用“分组分隔符”。缺省值为 true。
integerOnly="true|false"
是否将值截断为整数。缺省值为 false。
loaded="true|false"
装入页面时是否创建标记实例。缺省值为 true。
locale="option"
语言和国家或地区代码,例如 en_US
maxFractionDigits="n"
数字的小数部分的最大位数。
maxIntegerDigits="n"
数字的整数部分的最大位数。
minFractionDigits="n"
数字的小数部分的最小位数。
minIntegerDigits="n"
数字的整数部分的最小位数。
pattern="pattern"
用于格式化已转换数字值的用户定义模式。
type="number|currency|percent"
用于转换的格式。缺省值为 number
表 91. 用于日期/时间转换的包含的属性
属性 描述
dateStyle="default|short|medium|long|full"
日期值的预定义格式。
ignoreUserTimeZone="true|false"
是否忽略用户时区而使用平台时区。
loaded="true|false"
装入页面时是否创建标记实例。缺省值为 true。
locale="option"
语言和国家或地区代码,例如 en_US
pattern="pattern"
用于格式化已转换日期/时间值的用户定义模式。
timeStyle="default|short|medium|long|full"
时间值的预定义格式。
timeZone="option"
已格式化值的时区,例如 US/Eastern
type="date|time|both"
要格式化的一个或多个部分。缺省值为 date
表 92. 用于掩码转换的包含的属性
属性 描述
asis="true|false"
是否除去非掩码输入的数据。缺省值为 false。
loaded="true|false"
装入页面时是否创建标记实例。缺省值为 true。
mask="mask"
掩码字符,其中 # 是数字占位符,而 ? 是字母占位符。
示例
此编辑框将其关联的数据转换为数字。
<xp:inputText id="inputText1" value="#{document1.quantity}">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
此编辑框将其关联的数据转换为布尔值。
<xp:inputText id="inputText1" value="#{document1.ispublic}">
	<xp:this.converter>
		<xp:convertBoolean" strict="true" message="Enter true or false for ispublic"></xp:convertBoolean>
	</xp:this.converter>
</xp:inputText>

coords - 坐标

指定用于客户端图像映射的热点在屏幕上的位置和形状。

类别
格式
语法
coords="coordinates"
用法
在设计方式下,单击所有属性,然后在格式下查找 coords

缺省内容类型是 text

createdStyleClass - 创建日期样式类

指定要为创建日期列应用的 CSS 类的列表。

类别
样式
语法
createdStyleClass="name ..."
其中 name 标识类。使用空格分隔多个类名。
用法
在设计方式下,单击所有属性,然后在样式下查找 createdStyleClass

createdTitle - 创建日期标题

指定创建日期标题的备用标题。

类别
基本
语法
createdTitle="title"
用法
在设计方式下,单击所有属性,然后在基本下查找 createdTitle

缺省标题是日期

createdValue - 创建日期值绑定

覆盖创建日期的值。

类别
基本
语法
createdValue="#{javascript:textofscript}"
其中服务器脚本返回日期类型的值。
用法
在设计方式下,单击所有属性,然后在基本下查找 createdValue

缺省值是实际创建日期。

createForm - 创建表单标志

创建或不创建表单元素。

类别
基本
语法
createForm="true|false"
其中 true 强制创建表单,而 false 禁止创建表单。
用法
在设计方式下,单击所有属性,然后在基本下查找 createForm

可以在源编辑器中创建定制的 form 元素。请参阅示例,了解缺省表单的规范。

缺省情况下(如果未指定此属性),如果不存在表单,将创建表单;如果存在表单,将不会创建表单。

示例
此 XPage 禁止创建表单。
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" createForm="false">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"
		style="font-weight:bold">
	</xp:inputText>
	<xp:button value="submit" id="button1" style="font-weight:bold">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
	</xp:button>
</xp:view>
它会生成如下 XML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title></title>
<script type="text/javascript" src="/domjs/dojo-1.3.2/dojo/dojo.js" djConfig="locale: 'en-us'"></script>
<script type="text/javascript" src="/domjs/dojo-1.3.2/ibm/xsp/widget/layout/xspClientDojo.js"></script>
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xsp.css">
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xspLTR.css">
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xspFF.css">
</head>
<body class="xspView tundra">
<input type="text" id="view:inputText1" name="view:inputText1" style="font-weight:bold" class="xspInputFieldEditBox"><button style="font-weight:bold" class="xspButtonSubmit" type="button" name="view:button1" id="view:button1">submit</button><script type="text/javascript">

XSP.addOnLoad(function() {
XSP.attachEvent("view:_id2", "view:button1", "onclick", null, true, false);
}); 

</script>

</body>
</html>
如果创建了表单(未禁止创建),那么 XML 如下:
<html lang="en">
<head>
<title></title>
<script type="text/javascript" src="/domjs/dojo-1.3.2/dojo/dojo.js" djConfig="locale: 'en-us'"></script>
<script type="text/javascript" src="/domjs/dojo-1.3.2/ibm/xsp/widget/layout/xspClientDojo.js"></script>
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xsp.css">
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xspLTR.css">
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xspFF.css">
</head>
<body class="xspView tundra">
<form id="view:_id1" method="post" action="/foo.nsf/xpage2.xsp" class="xspForm" enctype="multipart/form-data">
<input type="text" id="view:_id1:inputText1" name="view:_id1:inputText1" style="font-weight:bold" class="xspInputFieldEditBox"><button style="font-weight:bold" class="xspButtonSubmit" type="button" name="view:_id1:button1" id="view:_id1:button1">submit</button>

<input type="hidden" name="$$viewid" id="view:_id1__VUID" value="!cidukjk9dq!">
<input type="hidden" name="$$xspsubmitid">
<input type="hidden" name="$$xspexecid">
<input type="hidden" name="$$xspsubmitvalue">
<input type="hidden" name="$$xspsubmitscroll">
<input type="hidden" name="view:_id1" value="view:_id1"></form>
<script type="text/javascript">

XSP.addOnLoad(function() {
XSP.attachEvent("view:_id1:_id2", "view:_id1:button1", "onclick", null, true, false);
}); 

</script>
</body>
</html>

currentStyleClass - 当前页面样式类

指定在当前页面控件没有样式时要为其应用的 CSS 类的列表。

类别
样式
语法
currentStyleClass="name ..."
其中 name 标识类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 currentStyleClass

这将导致呈现一个外层范围,并且 class= 设置为这些值。

data - 数据源

定义页面或控件的数据源。

类别
数据
语法
<xp:this.data>
	<xp:dominoDocument attributes>content</xp:dominoDocument> <!--for document source-->
	<xp:dominoView attributes>content</xp:dominoView> <!--for view source-->
	...
</xp:this.data
此属性适用于页面和部分容器控件,并可以包含任意数目的 dominoDocumentdominoView 元素。
用法
在设计方式下,确保焦点位于页面或容器控件上。单击属性下的数据选项卡;或单击所有属性,然后在数据下查找 data。您可以添加、编辑或除去类型为 dominoDocumentdominoView 的数据源。
包含的属性
数据源具有以下属性。
action="editDocument|openDocument"
(dominoDocument) 指定在页面打开和提交时对数据源执行的操作。缺省值为在页面提交时创建新文档。通过设置 editDocumentopenDocument 选项,页面在打开时会填充数据源中的内容。若设置 editDocument 选项,提交页面时将替换文档。
allowDeletedDocs="true|false"
(dominoDocument) 允许或禁止打开软删除的文档。
categoryFilter="category"
(dominoView) 将视图内容限制为(数组中的)一个或多个类别。
computeDocument (dominoDocument) 计算或重新计算文档时激活事件处理程序。
computeWithForm="onload|onsave|both"
(dominoDocument) 装入和/或保存文档时运行表单验证脚本。
concurrencyMode="createResponse|fail|exception|force"
(dominoDocument) 指定在多个用户同时更新文档时对并发更新的处理。
databaseName="name"
指定包含数据源的数据库,其中 name 是相对于 Notes 数据目录的数据库的文件名。缺省值为当前数据库。如果数据库不在本地,那么 name 可以包含服务器。name 可以是副本标识。
dataCache="full|id|nodata"
(dominoView) 指定在对同一页面的请求之间如何进行数据高速缓存。
documentId="#{javascript:database.script}"
(dominoDocument) 数据源的通用标识,其中 script 返回通用标识。如果希望在装入页面时进行计算,请用 $ 代替 #。或者,也可以指定静态值。
expandLevel="n"
(dominoView) 分层视图的扩展级别。
formName="name"
(dominoDocument) 将数据源与 Domino 表单关联,以存储和检索文档。
ignoreRequestParams="true|false"
忽略或识别置于请求映射上的参数。
keys="key(s)"
(dominoView) 指定用于过滤视图的关键字。每个关键字(对于多个关键字使用数组)按顺序对应于视图中的一个排序列。
keysExactMatch="true|false"
(dominoView) 要求关键字完全匹配,或允许部分匹配。
loaded="true|false"
装入页面时,创建或不创建标记实例。
parentId="#{javascript:database.script}"
数据源的父代的通用标识,其中 script 返回通用标识。如果希望在装入页面时进行计算,请用 $ 代替 #。或者,也可以指定静态值。
postNewDocument (dominoDocument) 创建文档后激活事件处理程序。
postOpenDocument (dominoDocument) 打开文档后激活事件处理程序。
postOpenView (dominoView) 打开视图后激活事件处理程序。
postSaveDocument (dominoDocument) 保存文档后激活事件处理程序。
queryNewDocument (dominoDocument) 创建文档前激活事件处理程序。
queryOpenDocument (dominoDocument) 打开文档前激活事件处理程序。
queryOpenView (dominoView) 打开视图前激活事件处理程序。
querySaveDocument (dominoDocument) 保存视图前激活事件处理程序。
requestParamPrefix="prefix"
指定请求参数的前缀。
saveLinksAs="UseWeb|UseNotes|UseNotesAndWeb"
(dominoDocument) 指定对链接的处理。
scope="application|session|view|request"
定义数据源的作用域
search="query"
(dominoView) 指定用于过滤视图的搜索查询。
searchMaxDocs="n"
(dominoView) 指定由搜索过滤的视图中可包含的最大文档数。
sortColumn="title"
(dominoView) 指定用于对视图进行排序的列的标题。该列必须可以在视图设计中排序。
sortOrder="n"
(dominoView) 指定列的排序顺序。
startKeys="key(s)"
(dominoView) 指定要在排序视图中显示的第一行的关键字。每个关键字(对于多个关键字使用数组)按顺序对应于视图中的一个排序列。
var="name"
用于引用数据源的全局变量。对于文档缺省值为 document1document2 等,而对于视图则缺省值为 view1view2 等。
viewName="name"
(dominoView) 将数据源与 Domino 视图关联。
webQuerySaveAgent="nameofagent"
(dominoDocument) 在应用字段值之后但在保存文档之前调用代理程序。代理程序可通过 LotusScript NotesAgentContext 类中的 DocumentContext(请参阅《IBM Domino Designer 基本用户指南和参考》或 Java AgentContext 类中的 getDocumentContext(请参阅《IBM Domino Designer 基本用户指南和参考》访问内存中文档。 代理程序可通过附加名为 SaveOptions 且值为 0(零)的项来取消保存操作。
示例
此页面定义与 form1 关联的一个数据源。
<xp:this.data>
	<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
</xp:this.data>
此页面定义三个数据源,其中两个与表单关联,一个与视图关联。
<xp:this.data>
	<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	<xp:dominoView var="view1" viewName="view1"></xp:dominoView>
	<xp:dominoDocument var="document2" formName="form2"></xp:dominoDocument>
</xp:this.data>

dataContexts - 控件数据上下文

定义数据上下文。

类别
数据
语法
<xp:this.dataContexts>
	<xp:dataContext indexVar="name" loaded="true|false" rowIndex="n"
		value="value" var="name">
	</xp:dataContext>
	...
</xp:this.dataContexts>
此属性适用于页面和部分容器控件。
用法
在设计方式下,确保焦点位于页面或容器控件上。单击所有属性,然后在数据下查找 dataContexts
包含的属性
indexVar="name"
指定使其中的行索引可视的请求范围变量名称。
loaded="true|false"
装入页面时,创建或不创建标记实例。
rowIndex="n"
指定当前行的索引,其中 0 是第一行。
value="value"
指定数据上下文的值。
var="name"
指定用于公布数据上下文的请求范围变量名称。

dataTableStyle - 数据表 CSS 样式

指定要为视图数据表应用的 CSS 样式的列表。

类别
样式
语法
dataTableStyle="name ..."
其中 name 标识样式。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 dataTableStyle

dataTableStyleClass - 数据表 CSS 样式类

指定要为视图数据表应用的 CSS 样式类的列表。

类别
样式
语法
dataTableStyleClass="name ..."
其中 name 标识样式类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 dataTableStyleClass

defaultChecked - 缺省选中

指定控件在初始情况下是选中还是清除。

类别
基本
语法
defaultChecked="true|false"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找缺省选中;或单击所有属性,然后在数据下查找 defaultChecked

此属性适用于可以选中或清除的控件(如复选框)。缺省情况下,此属性为 false

示例
此复选框控件根据复选框是处于选中(缺省情况下)还是清除状态来指定一个数据值。
<xp:checkBox id="checkBox2" text="Use user name instead of Anonymous"
	defaultChecked="true" value="#{document1.loginname}" uncheckedValue="Anonymous"
	checkedValue="#{javascript:session.getUserName()}">
</xp:checkBox>

defaultLinkTarget - 链接所使用的页面基本 URL

指定缺省情况下 Notes 客户端上目标页面的打开方式。

类别
基本
语法
defaultLinkTarget="_self|_blank"
其中 _self 会在同一选项卡中打开目标页面(替换当前页面),而 _blank 会在新选项卡中打开目标页面。
用法
在设计方式下,单击属性下的顶部选项卡,然后查找导航和链接的窗口行为(仅限 Notes 和客户端);或单击所有属性,然后在基本下查找 defaultLinkTarget

缺省值是使用应用程序属性XPage 选项卡上指定的应用程序缺省值。

defaultSelected - 缺省值为选中

指定控件在初始情况下是选中还是清除。

类别
基本
语法
defaultSelected="true|false"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找缺省值为选中;或单击所有属性,然后在数据下查找 defaultSelected

此属性适用于可以选中或清除的控件(如单选按钮)。缺省情况下,此属性为 false

示例
缺省情况下,此单选按钮控件为选中状态。
<xp:radio text="apples" id="radio1" value="#{document1.fruit}"
	groupName="fruit" selectedValue="apples" defaultSelected="true">
</xp:radio>

defaultValue - 缺省值

指定绑定数据元素的初始值。

类别
基本
语法
defaultValue="value"
用法
在设计方式下,单击属性下的数据,然后查找缺省值;或单击所有属性,然后在数据下查找 defaultValue

如果指定与数据元素不兼容的值,并且用户不更改该值,那么提交将会失败,并显示类型错误。

示例
此编辑框控件提供缺省值。
<xp:inputText id="inputText1" value="#{document1.subject}" defaultValue="my subject">
</xp:inputText>

defer - Defer 脚本

表明脚本不输出文档内容,例如,通过 document.write 语句。

类别
基本
语法
defer="true|false"
用法
在设计方式下,单击所有属性,然后在基本下查找 defer

缺省情况下,此属性为 false

deleteImageTitle - 删除文件图像标题

指定在用户鼠标悬停在删除图标上时显示的文本。

类别
基本
语法
deleteImageTitle="title"
用法
在设计方式下,单击所有属性,然后在基本下查找 deleteImageTitle

该属性仅在 allowDelete 为 true 时适用。

deleteMessage - 删除文件消息

指定用于确认是否删除附加文件的对话框的主体。

类别
基本
语法
deleteMessage="title"
用法
在设计方式下,单击所有属性,然后在基本下查找 deleteMessage

该属性仅在 allowDelete 为 true 时适用。

deleteStyleClass - 删除样式类

指定要为删除列应用的 CSS 类的列表。

类别
样式
语法
deleteStyleClass="name ..."
其中 name 标识类。使用空格分隔多个类名。
用法
在设计方式下,单击所有属性,然后在样式下查找 deleteStyleClass

dir - 方向

指定不继承方向的控件的文本方向。

类别
基本
语法
dir="ltr|rtl"
其中 ltr 表示从左到右,而 rtl 表示从右到左。
用法
在设计方式下,单击所有属性,然后在基本下查找 dir
示例
此输入框指定从右到左的文本方向。
<xp:inputText id="inputText1" value="#{document1.subject}"
		title="Subject edit box" autocomplete="off" dir="rtl">
</xp:inputText>

disableClientSideValidation - 禁用客户端验证

禁用或启用客户端验证。

类别
数据
语法
disableClientSideValidation="true|false"
用法
在设计方式下,单击所有属性,然后在数据下查找 disableClientSideValidation

缺省情况下,会启用客户端验证。

示例
此编辑框控件禁用客户端验证。
<xp:inputText id="inputText1" value="#{document1.subject}"
	disableClientSideValidation="true">
</xp:inputText>

disabled - 已禁用

禁用或启用控件。

类别
基本
语法
disabled="true|false"
用法
已禁用的控件无法接收焦点,且不能包含在页面提交中。

在设计方式下,单击属性下的顶部选项卡,然后查找已禁用;或单击所有属性,然后在基本下查找 disabled

缺省情况下,会启用控件。

示例
如果用户不是 Joe Bar,那么此编辑框控件已禁用。
<xp:inputText id="inputText1" value="#{document1.subject}">
	<xp:this.disabled>
		<![CDATA[#{javascript:session.getCommonUserName() != "Joe Bar"}]]>
	</xp:this.disabled>
</xp:inputText>

disabledClass - 禁用标签类

指定要应用于已禁用列表标签的 CSS 样式类。

类别
样式
语法
disabledClass="name"
用法
在设计方式下,单击所有属性,然后在样式下查找 disabledClass

disableModifiedFlag - 禁用修改的标志

禁用或启用控件的修改通知。

类别
数据
语法
disableModifiedFlag="true|false"
用法
在设计方式下,单击所有属性,然后在数据下查找 disableModifiedFlag

缺省情况下,会启用修改的通知。

示例
此编辑框控件禁用修改的通知。
<xp:inputText id="inputText1" value="#{document1.subject}"
	disableModifiedFlag="true">
</xp:inputText>

disableTheme - 禁用主题

禁用或启用主题。

类别
样式
语法
disableTheme="true|false"
用法

在设计方式下,单击所有属性,然后在样式下查找 disableTheme

缺省情况下,会启用主题。

如果计算此值,将返回布尔值,其中 true 禁用主题。

disableValidators - 禁用验证器

禁用或启用验证器的执行。

类别
基本
语法
disableValidators="true|false"
用法
在设计方式下,单击所有属性,然后在基本下查找 disableValidators

缺省情况下,会启用验证器。

会处理完整的 JSF 生命周期(与 immediate 不同),但不执行验证器。转换器会执行并可以生成验证错误。

可以将此方式视为“另存为草稿”方式。

displayAs - 将字段显示为链接

将选定项显示为纯文本或指向底层文档的链接。

类别
基本
语法
displayAs="link|text|hidden"
用法
在设计方式下,单击属性下的显示,然后查找显示列值将此列中的值显示为链接;或单击所有属性,然后在基本下查找 displayAs
示例
此视图面板控件将第一列中的项显示为指向底层文档的链接。
<xp:viewPanel rows="30" id="viewPanel1" pageName="/xpage1.xsp">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1" displayAs="link">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

displayCreated - 显示创建日期

显示或不显示创建日期。

类别
基本
语法
displayCreated="true|false"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找创建日期;或单击所有属性,然后在基本下查找 displayCreated

缺省情况下,会显示创建日期。

displayLastModified - 显示上次修改日期

显示或不显示修改日期。

类别
基本
语法
displayLastModified="true|false"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找修改日期;或单击所有属性,然后在基本下查找 displayLastModified

缺省情况下,会显示创建日期。

displaySize - 显示文件大小

显示或不显示文件大小。

类别
基本
语法
displaySize="true|false"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找大小;或单击所有属性,然后在基本下查找 displaySize

缺省情况下,会显示创建日期。

displayType - 显示文件类型

显示或不显示文件类型。

类别
基本
语法
displayType="true|false"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找类型;或单击所有属性,然后在基本下查找 displayType

缺省情况下,会显示创建日期。

dojoArgs - Dojo 参数

指定用于输出到脚本标记的 dojo 参数的列表。

类别
dojo
语法
dojoArgs="arg,..."
其中值是以逗号分隔的参数列表。
用法
在设计方式下,单击所有属性,然后在 dojo 下查找 dojoArgs

请参阅 http://docs.dojocampus.org/dojo/parser#script-tags

dojoAttributes - Dojo 属性

指定 Dojo 属性列表。

类别
dojo
语法
<xp:this.dojoAttributes>
	attribute ...
</xp:this.dojoAttributes>
其中 attribute 为:
<xp:dojoAttribute name="name"
	value="value">
</xp:dojoAttribute>
用法
在设计方式下,单击属性下的 Dojo 选项卡并查找 Dojo 属性,或者单击所有属性并查找 dojo 下的 dojoAttributes

您可以通过将名为 toolbarType 的属性值指定为 litemedium(缺省值)或 full,调整富文本格式控件呈现的工具栏。

可以通过指定名为 iconClass 的属性(其值指定以空格分隔的类名),来指定渲染图标时要应用的 CSS 类的列表。

示例
此富文本格式控件呈现完整的工具栏。
<xp:inputRichText id="inputRichText1" value="#{document1.body}">
	<xp:this.dojoAttributes>
		<xp:dojoAttribute name="toolbarType" value="full"></xp:dojoAttribute>
	</xp:this.dojoAttributes>
</xp:inputRichText>

dojoEvent - Dojo 事件

指定用于输出到脚本标记的 dojo 事件或函数名。

类别
dojo
语法
dojoEvent="name"
用法
在设计方式下,单击所有属性,然后在 dojo 下查找 dojoEvent

请参阅 http://docs.dojocampus.org/dojo/parser#script-tags

dojoForm - 创建 Dojo 表单

创建或不创建页面的 dojo form 元素。

类别
dojo
语法
dojoForm="true|false"
用法
在设计方式下,单击属性下的 Dojo 选项卡,然后查找在页面上包含 Dojo 表单模块,或者单击所有属性并在 dojo 下查找 dojoForm
缺省情况下,页面表单并非 dojo。生成的 dojo form 元素 XML 具有以下外观:
<form id="view:_id1" method="post"
	action="/foo.nsf/xpage2.xsp?SessionID=CIENY5RD3Q" class="xspForm"
	enctype="multipart/form-data"
	dojoType="dijit.form.Form">
非 dojo 表单缺少 dojoType 属性。

createForm - 创建表单标志属性不能为 false

示例
此 XPage 指定 dojo 表单。
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoForm="true">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"
		style="font-weight:bold">
	</xp:inputText>
	<xp:button value="submit" id="button1" style="font-weight:bold">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
	</xp:button>
</xp:view>

dojoParseOnLoad - 装入时触发 Dojo 解析器

装入页面时,启动或不启动 dojo 解析器。

类别
dojo
语法
dojoParseOnLoad="true|false"
用法
在设计方式下,单击属性下的 Dojo 选项卡并查找在装入时触发 Dojo 解析,或单击所有属性并在 dojo 下查找 dojoParseOnLoad

缺省情况下,不会装入 dojo 解析器。

示例
此 XPage 指定 dojo 表单。
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoForm="true" dojoParseOnLoad="true">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"
		style="font-weight:bold">
	</xp:inputText>
	<xp:button value="submit" id="button1" style="font-weight:bold">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
	</xp:button>
</xp:view>

dojoStoreType - Dojo 存储类型

覆盖用于为控件创建数据存储的缺省 dojo 类型。

类别
dojo
语法
dojoStoreType="type"
用法
在设计方式下,单击所有属性,然后在基本下查找 dojoStoreType

dojoTheme - 使用 Dojo 主题

使用或不使用 dojo 主题。

类别
dojo
语法
dojoTheme="true|false"
用法
在设计方式下,单击属性下的 Dojo 选项卡并查找使用 Dojo 主题,或者单击所有属性并在 dojo 下查找 dojoTheme

缺省情况下,不使用 dojo 主题。

示例
此 XPage 使用 dojo 主题。
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoForm="true"
	dojoParseOnLoad="true" dojoTheme="true">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"
		style="font-weight:bold">
	</xp:inputText>
	<xp:button value="submit" id="button1" style="font-weight:bold">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
	</xp:button>
</xp:view>

dojoType - Dojo 类型

指定用于创建控件的缺省 Dojo 类型。

类别
dojo
语法
dojoType="type"
用法
在设计方式下,单击属性下的 Dojo 选项卡,然后查找 Dojo 类型;或单击所有属性,然后在 dojo 下查找 dojoType

CKEditor (http://ckeditor.com) 是富文本格式控件的缺省富文本格式编辑器。要更改为 Dojo 富文本格式编辑器,请将此属性设置为 ibm.xsp.widget.layout.RichText

示例
此富文本格式控件使用 Dojo 编辑器。
<xp:inputRichText id="inputRichText1"
	value="#{document1.body}" dojoType="ibm.xsp.widget.layout.RichText">
</xp:inputRichText>

enabledClass - 启用标签类

指定要应用于已启用列表标签的 CSS 样式类。

类别
样式
语法
enabledClass="name"
用法
在设计方式下,单击所有属性,然后在样式下查找 enabledClass

enableModifiedFlag - 启用修改的标志

用户浏览到其他位置时允许保存修改的页面。

类别
数据
语法
enableModifiedFlag="true|false"
用法
在设计方式下,单击所有属性,然后在数据下查找 enableModifiedFlag

如果此属性为 true,并且用户从已更改的页面浏览到其他位置,将显示一条消息。用户可以选择保存或不保存更改。

缺省情况下或如果此属性为 false,那么当用户从更改的页面浏览到其他位置时不会保存更改。

示例
此 XPage 在用户从更改的页面浏览到其他位置时通知用户。
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
	enableModifiedFlag="true">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"
		style="font-weight:bold">
	</xp:inputText>
	<xp:button value="submit" id="button1" style="font-weight:bold">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
	</xp:button>
</xp:view>

endTabStyleClass - 末尾选项卡类

指定当末尾选项卡没有样式时要为其应用的 CSS 类的列表。

类别
样式
语法
endTabStyleClass="name ..."
其中 name 标识类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 endTabStyleClass

这将导致呈现一个外层范围,并且 class= 设置为这些值。

errorClass - 错误类

指定要为严重性为 error 的消息应用的 CSS 样式类的列表。

类别
样式
语法
errorClass="name ..."
其中 name 标识样式类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 errorClass

errorStyle - 错误 CSS 样式

指定要为严重性为 error 的消息应用的 CSS 样式的列表。

类别
样式
语法
errorStyle="name ..."
其中 name 标识样式。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 errorStyle

escape - 转义字符

表明是否为对于 XML 和 HTML 标记会产生错误的字符进行转义。

类别
基本
语法
escape="true|false"
用法
在设计方式下,单击所有属性,然后在基本下查找 escape

缺省值为 true

示例
此计算字段控件对 XML 和 HTML 标记进行转义。
<xp:text escape="true" id="computedField1"
	value="#{javascript:return requestScope.number1 + requestScope.number2}">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:text>

event - 事件

指定此事件的名称。

类别
基本
语法
event="name"
用法
在设计方式下,单击所有属性,然后在基本下查找 event
示例
此类型为取消的按钮控件由 onclick 事件激活。
<xp:button value="cancel" id="button2">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="true" save="false">
						</xp:eventHandler>
</xp:button>

eventHandler - 事件处理程序(属性)

指定控件事件发生时要执行的脚本和简单操作。

类别
事件
语法
对于服务器事件:
<xp:eventHandler event="eventname" submit="true|false"
	refreshMode="complete|partial|norefresh" refreshId="controlid"
	immediate="true|false"	execMode="partial|full">
							<xp:this.action>
	<!--For a script:-->
		<![CDATA[#{javascript:script}]]> <!--where script is the text of the script-->
	<!--For a simple action:-->
		<xp:simpleactionname attributes>content</xp:simpleactionname>
	<!--For a simple action group:-->
							</xp:this.action>
		<xp:actionGroup condition="#{javascript:script}">
			<xp:simpleactionname attributes>content</xp:simpleactionname>
			...
			<!--Can embed simple action groups-->
		</xp:actionGroup>
	<xp:this.parameters>
		<xp:parameter name="name" value="value"></xp:parameter>
		...
	</xp:this.parameters>
</xp:eventHandler>
对于客户端事件:
<xp:eventHandler event="eventname" submit="false">
	<xp:this.script>
	<!--For a script:-->
		<![CDATA[script]]> <!--where script is the text of the script-->
	<!--For a simple action:-->
		<xp:simpleactionname attributes>content</xp:simpleactionname>
	<!--For a simple action group:-->
		<xp:scriptGroup conditionScript="script">
			<xp:simpleactionname attributes>content</xp:simpleactionname>
			...
			<!--Can embed simple action groups-->
		</xp:scriptGroup>
	</xp:this.script>
</xp:eventHandler>
其中:
  • eventname 指定事件的名称,例如 onblur 或 onclick。在设计方式下,选择适当的事件。
  • submit="true" 导致在用户激活事件时将请求发送到服务器。submit 的任何其他值都将停用事件。在设计方式下,单击无提交以除去事件。
  • refreshMode 为以下某个值:
    • complete 在服务器处理请求之后将整个页面重新装入到客户端。在设计方式下,单击完全更新
    • partial 使用异步 JavaScript 和 XML (AJAX) 技术重新装入页面的选定部分。在设计方式下,单击部分更新
    • norefresh 不重新装入页面。在设计方式下,单击无更新
  • refreshId 仅适用于 refreshMode="partial",并指定要更新的控件。在设计方式下,单击选择元素
  • immediate="true" 禁止服务器上的数据处理。对于数据处理,可省略此属性或指定除 true 以外的任何值。在设计方式下,单击不要验证或更新数据
  • execMode="partial" 指定执行代码段时进行部分刷新。对于完全刷新,可省略此属性或指定除 partial 以外的任何值。在设计方式下,单击设置部分执行方式
  • action 指定以下任何一个值:
    • 脚本,其中 script 是您的代码。在设计方式下,单击脚本编辑器。在脚本窗口中输入脚本,或打开脚本对话框。
    • 简单操作的名称及其参数。在设计方式下,单击简单操作。使用各种按钮和列表来创建和编辑简单操作。
    • 可包含简单操作和其他操作组的 actionGroup。条件为可选。
  • parameters 指定任何事件参数的名称和值。在设计方式下,单击编辑事件参数
用法
事件是用户可以执行的操作,如单击按钮或将焦点从编辑框移开。事件处理程序是您(设计者)为响应事件而执行的操作。事件处理程序可以是服务器脚本、客户端脚本、简单操作或简单操作组。

在设计方式下,将焦点放在控件或页面上,单击事件选项卡。事件被作为属性对待,并显示在“属性”下的“所有属性”上。但是,最佳做法是不要通过“所有属性”创建或修改事件。

示例
此按钮 onclick 事件使用服务器脚本创建新文档:
<xp:button value="Create document" id="button4">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<![CDATA[#{javascript:var doc = database.createDocument();
			doc.replaceItemValue("subject", requestScope.subject);
			doc.save();
			requestScope.subject = null}]]>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>
此按钮 onclick 事件使用服务器简单操作打开名为 main 的页面:
<xp:button id="button5" value="Main page">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<xp:openPage name="/main.xsp" target="newDocument"></xp:openPage>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>
此按钮 onclick 事件使用简单操作组创建新文档并打开名为 main 的页面:
<xp:button value="Create document" id="button6">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<xp:actionGroup condition="#{javascript:true}">
				<xp:executeScript>
					<xp:this.script><![CDATA[#{javascript:var doc = database.createDocument();
					doc.replaceItemValue("subject", requestScope.subject);
					doc.save();
					requestScope.subject = null}]]>
					</xp:this.script>
				</xp:executeScript>
				<xp:openPage name="/main.xsp" target="newDocument"></xp:openPage>
			</xp:actionGroup>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>
此编辑框 onblur 事件在用户文本包含空格时显示消息:
<xp:inputText id="inputText2" value="#{requestScope.subject}">
	<xp:eventHandler event="onblur" submit="true" refreshMode="complete">
		<xp:this.script>
		<![CDATA[var e = window.document.getElementById("#{id:inputText2}");
		if(e.value.indexOf(" ") > -1) {
		window.alert("You should not have spaces in this value.")}]]>
		</xp:this.script>
						</xp:eventHandler>
</xp:inputText>

eventName - 事件名称

指定平台事件的名称。

类别
基本
语法
eventName="name"
用法
在设计方式下,单击所有属性,然后在基本下查找 eventName

exclude - 排除

列出已上载文件的排除 MIME 类型。

类别
基本
语法
exclude="text/html|image/png|image/gif|video/mpeg|text/css|audio/basic"
用法
在设计方式下,单击所有属性,然后在基本下查找 exclude

缺省情况下,不排除任何 MIME 类型。

execId - 要执行的片段

指定要执行的页面的片段。

类别
基本
语法
execId="name"
用法
在设计方式下,单击所有属性,然后在基本下查找 execId

execModepartial 并且所执行的控件不是当前控件时,使用此属性指定控件。

execMode - 执行方式

确定执行方式:完全或部分。

类别
基本
语法
execMode="complete|partial"
用法
在设计方式下,单击所有属性,然后在基本下查找 execMode

部分执行表示执行页面上某个控件的事件而非所有控件的事件。对于部分执行,如果执行并非针对当前控件,请指定 execId

缺省情况下,为完全执行。

expandedImage - 展开区段图像

指定展开区段的图像。

类别
基本
语法
expandedImage="pathname"
用法
在设计方式下,单击所有属性,然后在基本下查找 expandedImage

对于应用程序资源,图像路径相对于应用程序,例如 /abook.gif

facetName - 构面名称

标识构面区域。

类别
基本
语法
facetName="name"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找构面名称,或者单击所有属性并在基本下查找 facetName

缺省名称为 facet_1facet_2 等。

fatalClass - 致命类

指定要为严重性为 fatal 的消息应用的 CSS 样式类的列表。

类别
样式
语法
fatalClass="name ..."
其中 name 标识样式类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 fatalClass

fatalStyle - 致命样式

指定要为严重性为 fatal 的消息应用的 CSS 样式的列表。

类别
样式
语法
fatalStyle="name ..."
其中 name 标识样式。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 fatalStyle

filename - 文件名

指定上载文件的名称。

类别
基本
语法
filename="name"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找文件名;或单击所有属性,然后在基本下查找 filename

缺省情况下,将使用原始文件名。

fileNameHrefValue - 文件名 URL

使用指向文件的 URL 覆盖文件名引用。

类别
基本
语法
fileNameHrefValue="url"
用法
在设计方式下,单击所有属性,然后在基本下查找 fileNameHrefValue

缺省值为附件的实际名称。

fileNameTitle - 文件名标题

指定文件名标题的备用标题。

类别
基本
语法
fileNameTitle="title"
用法
在设计方式下,单击所有属性,然后在基本下查找 fileNameTitle

缺省标题是文件名

fileNameValue - 文件名值

指定文件名列的备用值。

类别
基本
语法
fileNameValue="name"
用法
在设计方式下,单击所有属性,然后在基本下查找 fileNameValue

缺省值为附件的实际名称。

first - 第一行索引

指定要显示的第一行的编号。

类别
数据
语法
first="n"
其中 n 从零开始。
用法
在设计方式下,单击所有属性,然后在数据下查找 first

firstStyleClass - 第一个页面样式类

指定在第一个页面控件没有样式时要为其应用的 CSS 类的列表。

类别
样式
语法
firstStyleClass="name ..."
其中 name 标识类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 firstStyleClass

这将导致呈现一个外层范围,并且 class= 设置为这些值。

footerClass - 页脚 CSS 样式类

指定要为页脚应用的 CSS 样式类的列表。

类别
样式
语法
footerClass="name ..."
其中 name 标识样式类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 footerClass

for - 关联客户端标识

指定要为其显示错误消息的控件。

类别
基本
语法
for="id"
其中 id 是 XPage 上控件的标识。
用法
在设计方式下,单击属性下的顶部选项卡,然后查找显示以下对象的错误消息;或单击所有属性,然后在基本下查找 for
示例
此处,输入框绑定到数字数据,并且不在客户端一侧进行验证。以下是输入框的错误显示。
<xp:inputText id="inputText3" value="#{document1.number}"
	disableClientSideValidation="true">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
<xp:message id="message1" for="inputText3"></xp:message>
如果用户在输入框中输入非数字值,那么错误显示中将显示以下消息:
This field is not a valid number

for - 对象标识

使分页器操作指向数据控件。

类别
基本
语法
for="id"
其中 id 是 XPage 上控件的标识。
用法
在设计方式下,单击属性下的顶部选项卡,然后查找附加目标;或单击所有属性,然后在基本下查找 for

当用户单击父分页器控件时,分页操作将在此属性指定的控件上进行。

数据控件内的构面区域中的分页器控件不需要此属性。

for - 选择目标控件

将焦点重定向到 XPage 上的其他控件。

类别
基本
语法
for="id"
其中 id 是 XPage 上控件的标识。
用法
在设计方式下,单击属性下的顶部选项卡,然后查找选择目标控件;或单击所有属性,然后在基本下查找 for

当用户单击或以其他方式将焦点置于此控件上时,焦点将转到目标控件上。

示例
此标签控件将焦点重定向到输入框控件:
<xp:label
	value="#{javascript:session.getCommonUserName()}"
	id="label1" style="color:rgb(0,0,255)" for="inputText1">
</xp:label>

frame - 表框架

指定如何为表加框架。

类别
格式
语法
frame="void|above|below|hsides"
用法
在设计方式下,单击所有属性,然后在格式下查找 frame

frequency - 频率

指定触发服务器请求之前的最短时间,以秒为单位。

类别
数据
语法
frequency="n"
用法
在设计方式下,单击所有属性,然后在基本下查找 frequency

globalOnly - 仅全局

仅显示不与某个控件关联的消息,或显示所有消息。

类别
基本
语法
globalOnly="true|false"
用法
在设计方式下,单击所有属性,然后在基本下查找 globalOnly

缺省情况下,会显示所有消息。

groupName - 组名

将单选按钮指定给某个组。

类别
基本
语法
groupName="name"
用法
在设计方式下,单击属性下的第一个选项卡,然后查找单选按钮组名;或单击所有属性,然后在基本下查找 groupName

不一定需要建立组。将单元按钮指定给组的行为将创建该组。

指定给同一组的所有单选按钮控件的行为都协调一致。一次只能选中一个按钮。如果组名是单选按钮组控件的名称,那么这些按钮是组的一部分。

示例
这些单选按钮控件属于同一组。
<xp:radio text="apples" id="radio1" value="#{document1.fruit}"
	groupName="fruit" selectedValue="apples">
</xp:radio>
<xp:radio text="Oranges" id="radio2" value="#{document1.fruit}"
	groupName="fruit" selectedValue="oranges">
</xp:radio>

handlers - 事件处理程序

指定要执行的事件处理程序的集合。

类别
事件
语法
<xp:this.handlers>
	<xp:handler loaded="true|false" renderkit="id"
		script="textofscript" type"text/javascript">
	</xp:handler>
	...
</xp:this.handlers>

header - 区段标题文本

指定区段顶部的可视标签。

类别
基本
语法
header="label"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找标题;或单击所有属性,然后在基本下查找 basics

当区段折叠时,仅显示标题。

示例
此区段指定标题。
<xp:section id="section1" header="Phone numbers" type="tab"
	initClosed="true">
	<xp:inputText id="inputText2" value="#{document1.phoneday}"></xp:inputText>day
	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document1.phonenight}"></xp:inputText>night
</xp:section>

headerClass - 页眉 CSS 类

指定要应用于页眉的 CSS 样式类的列表。

类别
样式
语法
headerClass="name ..."
其中 name 标识样式类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 headerClass

headerStyle - 区段标题 CSS 样式

指定要为区段标题应用的 CSS 类的列表。

类别
样式
语法
headerStyle="name ..."
其中 name 标识类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 headerStyle

height - 高度

指定控件的高度。

类别
格式
语法
height="n"
用法
在设计方式下,单击所有属性,然后在格式下查找 height

hideWhen - 不可用时隐藏

当没有附件可供下载时隐藏文件下载控件。

类别
基本
语法
hideWhen="true|false"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找无附件时隐藏;或单击所有属性,然后在基本下查找 hideWhen

缺省情况下,不隐藏下载控件。

href - 链接位置

将用户重定向到指定位置。

类别
基本
语法
href="url"
用法
在设计方式下,单击所有属性,然后在基本下查找 href
示例
单击此选项卡面板的用户将被重定向到 Google 站点。
<xp:tabPanel label="Google" id="tabPanel3"
	href="http://www.google.com">
</xp:tabPanel>

hreflang - 语言

指定检索到的资源的语言和国家或地区代码。

类别
基本
语法
hreflang="name"
其中 name 是语言和国家或地区代码,例如 en_US
用法
在设计方式下,单击所有属性,然后在基本下查找 hreflang

htmlConversionWarning - HTML 转换警告

当从 HTML 转换到富文本格式并保存文档时显示警告。

类别
基本
语法
htmlConversionWarning="warnOnConversion|warnOnConversionError|noWarning"
用法
在设计方式下,单击所有属性,然后在基本下查找 htmlConversionWarning
示例
此富文本格式控件在 HTML 转换时发出警告。
<xp:inputRichText id="inputRichText1" value="#{document1.body}">
	htmlConversionWarning="warnOnConversion"
</xp:inputRichText>

htmlFilter - 用于发送的 HTML 过滤处理器名称

指定用于发送数据的活动内容过滤 (ACF) 处理器。

类别
基本
语法
htmlFilter="identity|acf|empty|striptags"
用法
在设计方式下,单击所有属性,然后在基本下查找 htmlFilter

有关接收数据的信息,请参阅 htmlFilterIn - 用于接收的 HTML 过滤处理器名称

处理器的工作方式如下所示:
  • identity 过滤器返回原始字符串。
  • acf 处理器根据配置文件 (acf-config.xml) 解析 HTML 文本并过滤出不安全的构造。
  • empty 引擎除去所有内容并返回空字符串。
  • striptags 处理器使用正则表达式 replaceAll("\\<.*?>","") 除去所有标记。

对于 Notes 客户端,acf 配置文件通常位于 Notes 安装目录中的 xsp\nsf\acf-config.xml 位置。您还必须将下行添加到同一文件夹下的 xsp.properties 文件:xsp.htmlfilter.acf.config=acf-config.xml。样本配置文件位于 data\properties\acf-config.xml.sample

示例
此输入框指定在发送和接收时用于过滤的 acf 处理器。
<xp:inputText id="inputText1" value="#{document1.subject}"
	htmlFilter="acf" htmlFilterIn="acf">
</xp:inputText>

htmlFilterIn - 用于接收的 HTML 过滤处理器名称

指定用于接收数据的活动内容过滤 (ACF) 处理器。

类别
基本
语法
htmlFilterIn="identity|acf|empty|striptags"
用法
在设计方式下,单击所有属性,然后在基本下查找 htmlFilterIn

有关发送数据的信息以及更多信息,请参阅 htmlFilter - 用于发送的 HTML 过滤处理器名称

示例
此输入框指定在发送和接收时用于过滤的 acf 处理器。
<xp:inputText id="inputText1" value="#{document1.subject}"
	htmlFilter="acf" htmlFilterIn="acf">
</xp:inputText>

icon - 图标 URL

指定图标的路径。

类别
基本
语法
icon="path"
其中 path 是图标的位置。斜杠后跟图形文件的名称表示存储在当前应用程序中的资源。
用法
在设计方式下,单击属性下的顶部选项卡并查找指定按钮图像,或者单击所有属性并在基本下查找 icon
示例
此按钮控件提供带有备用文本的图标。
<xp:button id="button2" value="Save and Exit" icon="/folder.gif" iconAlt="Folder">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<xp:save name="/xpage2.xsp"></xp:save>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>

iconAlt - 图标备用文本

指定图标的描述性文本。

类别
辅助功能选项
语法
iconAlt="description"
用法
在设计方式下,单击属性下的顶部选项卡并查找指定按钮图像图标备用文本,或单击所有属性并在辅助功能选项下查找 iconAlt

如果计算该值,将返回字符串。

示例
此按钮控件提供带有备用文本的图标。
<xp:button id="button2" value="Save and Exit" icon="/folder.gif" iconAlt="Folder">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<xp:save name="/xpage2.xsp"></xp:save>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>

iconSrc - 图标源

在列内容前显示图标。

类别
格式
语法
iconSrc="path"
其中 path 是图标的位置。斜杠后跟图形文件的名称表示存储在当前应用程序中的资源。
用法
在设计方式下,单击属性下的显示选项卡,然后查找图标;或单击所有属性,然后在格式下查找 iconSrc

id - 名称

在页面上所有控件中唯一标识某个控件。

类别
基本
语法
id="name"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找名称;或单击所有属性,然后在基本下查找 id

大多数控件都会接收到由控件标记加整数组成的缺省标识,如 inputText1inputText2。最简单的做法是将标识保留原样,但您也可以更改或除去标识。

不能指定与页面上其他控件标识重复的标识。

标识必须是静态值。

示例
此编辑框控件名为 inputText1
<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText>

ignoreCase - 忽略大小写

表明预输入区分还是忽略大小写。

类别
基本
语法
ignoreCase="true|false"
其中 true 将忽略大小写。
用法
在设计方式下,当焦点位于父控件上时,单击属性下的预输入选项卡,然后查找区分大小写;或将焦点放在 typeAhead 控件上,单击所有属性,然后在基本下查找 ignoreCase

如果计算此值,将返回布尔值。

示例
此编辑框控件提供忽略大小写的预输入。
<xp:inputText id="inputText1" value="#{document1.subject}">
	<xp:typeAhead mode="full" minChars="1"
	valueList="alpha#beta#charlie#delta#echo#foxtrot"
	valueListSeparator="#" tokens=",/" ignoreCase="true">
</xp:typeAhead></xp:inputText>

image - 图像(属性)

指定图像。

类别
基本
语法
image="pathname"
用法
在设计方式下,单击属性下的顶部选项卡,然后查找图像选项卡图像;或单击所有属性,然后在格式基本下查找 image

对于应用程序资源,图像路径相对于应用程序,例如 /abook.gif

imageAlt - 图像替代文本(属性)

指定图像无法显示时的替代文本。

注: 此属性是 R9.0.1 的新增属性。
类别
辅助功能选项
语法
imageAlt="descriptive text"
用法
在“设计”模式下,单击所有属性,然后在 accessibility 下查找 imageAlt
示例
此处选项卡使用带替代文本的文件夹图像。
<xp:tabbedPanel id="tabbedPanel1">
	<xp:tabPanel label="New Tab" id="tabPanel1" image="/folder.gif"
		imageAlt="Icon for folder">
	</xp:tabPanel>
	<xp:tabPanel label="New Tab2" id="tabPanel2"></xp:tabPanel>
</xp:tabbedPanel>

immediate - 立即操作

在“应用请求值”阶段期间立即通知 listener 或转换并验证数据,而非稍后在“调用应用程序”或“过程验证”阶段期间执行。

类别
基本
语法
immediate="true|false"
其中 true 将立即操作。
用法
在设计方式下,单击所有属性,然后在基本事件下查找 immediate

缺省情况下,通知或验证会稍后进行。

示例
此编辑框控件立即执行验证。
<xp:inputText id="inputText1" value="#{document1.subject}"
	immediate="true">
</xp:inputText>

indentResponses - 缩进响应

缩进或不缩进响应文档。

类别
格式
语法
indentResponses="true|false"
用法
在设计方式下,单击属性下的显示,然后查找缩进响应;或单击所有属性,然后在格式下查找 indentResponses

此属性缺省值为 false

只应将一列标记为缩进响应,通常是第一个无分类的列。

.

indexVar - 索引变量

指定使行索引可用于子代的变量的名称。

类别
数据
语法
indexVar="name"
用法
在设计方式下,单击所有属性,然后在数据下查找 indexVar

infoClass - 信息 CSS 样式类

指定要为严重性为 info 的消息应用的 CSS 样式类的列表。

类别
样式
语法
infoClass="name ..."
其中 name 标识样式类。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 infoClass

infoStyle - 信息 CSS 样式

指定要为严重性为 info 的消息应用的 CSS 样式的列表。

类别
样式
语法
infoStyle="name ..."
其中 name 标识样式。使用空格分隔多个名称。
用法
在设计方式下,单击所有属性,然后在样式下查找 infoStyle

initClosed - 初始关闭值

初始情况下关闭或打开区段。

类别
基本