AJAX 外部请求行为

将页面中“panel”标记的内容替换为另一页面中的内容。将使用 AJAX GET 请求(子请求)检索此内容。因此,检索附加内容时,不会重新绘制整个页面。

发送组件的 JSF 标记

<hx:ajaxExternalRequest>

基本 HTML

只能从 JWL GET 操作中进行调用,并且,此操作必须是与任何支持事件处理程序的 HTML 标记相连的行为(例如通用行为)的组成部分。GET 的目标必须是包含此行为(或者作为此行为的目标)的面板的 ID。

JavaScript 构造函数

hX_5.addBehavior("id", "onget", new hX_5.JSFBehaviorAjaxGetExternal(attributes)); 其中

id

组件所连接至的 HTML 标记的 ID。

属性

逗号分隔的属性列表,其中每个属性都是一个加引号的字符串,此字符串包含使用冒号分隔的属性名称和值,例如,"label:MyLabel"。

受支持的事件

事件

描述

onget

注意特殊事件名称的用法。此事件为必需事件。

属性

表 1.

属性名称

描述

href

从中检索内容的页面的 URL。如果省略,则将从当前页面(发起页面)检索内容。

hreflang

检索到的页面(链接所解析至的页面)的语言。此项仅供咨询之用,大部分浏览器都会忽略该属性。指定为符合 ISO 标准的语言缩写代码。例如,“en”表示英语,“en-US”表示美国英语,“fr”表示法语,而“de”表示徳语。

charset

检索到的页面(链接所解析至的页面)的(首选)字符编码。

source

目标 URL 中标记的 ID,该标记的内容将替换此组件所关联的容器的内容。如果未指定 ID,或者在 URL 所引用的页面中找不到该 ID,则将使用容器的 ID。如果在 URL 所引用的页面中找不到此 ID,则将使用主体内容。

title

当请求正在进行时,会将 title 指定为面板的主要标记(例如,div)和为面板分配的“临时制表符停止位”。此 title 在鼠标指针悬停在面板上时显示为工具提示,此外还可供屏幕朗读器使用。

progress-actions

当请求正在进行时,要应用于面板的 JWL 操作。当前,仅支持 LOCKED 操作。

params

分号分隔的参数名列表。当检索到页面时,将对 URL 进行编码以包含这些参数名和 param-fields 所标识的对应值。

param-fields

如果提供了 params,则 param-fields 是对应的标识列表。由 ID 所标识的字段的值将作为 param 名称的值编码到 URL。param 和 param-fields 列表的大小必须相同。param 名称通常是字段的“未装饰”ID,而与字段相对应的 param-field 通常是字段的“已装饰”ID。例如,如果您想要对字段 form1:text1 的值进行编码,则应该使用 text1 作为 param,使用 form1:text1 作为 param-fields。这将导致 text1=value 被编码到 URL,其中 value 是字段 form1:text1 的当前字段。

on-start

在发送请求前,将执行此 JavaScript™ 函数。它没有任何参数。如果它返回 false,则将中止执行。此函数可以与 oncomplete 配合使用来定制执行请求过程中所显示的内容。

on-error

如果请求失败/超时,则将执行此 JavaScript 函数。此函数的特征符通常是 function(thisObj, thisError),其中 thisObj 指向面板,而 thisError 是描述错误的字符串。

on-complete

如果请求成功,则替换面板的内容后,将执行此 JavaScript 函数。此函数没有任何有意义的参数。

on-start

在发送请求前,将执行此 JavaScript 函数。它没有任何参数。如果它返回 false,则将中止执行。此函数可以与 oncomplete 配合使用来定制执行请求过程中所显示的内容。

序列

当发出“GET”时运行。不会停止该事件,应该在起始行为中编码“STOP”操作。

API 调用

表 2. AJAX 外部请求 API 调用

API 调用

描述

object = setAttribute(attribute)

设置属性,或如果以前已设置属性,则更改其值。

string = getAttribute(attribute-name)

检索属性的当前值。

示例代码

对 ID 为“form1:panelHelp”的面板所在的页面添加 AJAX 检索操作。每当发出内容检索请求时,将字段“form1:lookUpText”的值编码为名为“lookupText”的参数。

hX.addBehavior("form1:panelHelp", "onget", new hX.JSFBehaviorAjaxGetExternal("on-error:return doError(this, event);", 
    "source:form1:panelHelp", "params:lookUpText", "param-fields:form1:lookUpText", "on-start:return doPrep(this, event);", 
    "href:JWL3-TEST-AJAX-External1-source1.jsp"));

反馈