AJAX 外部要求振る舞い

ページ内の「パネル」タグのコンテンツを、 別のページのコンテンツで置き換えます。 コンテンツの検索は、AJAX get (サブ) 要求を 使用して行われます。 これによって、追加のコンテンツを検索しても、 ページ全体が書き換えられることはありません。

コンポーネントを発行する JSF タグ

<hx:ajaxExternalRequest>

基本 HTML

イベント・ハンドラーをサポートする HTML タグの いずれかに付加される振る舞い (例えば、一般振る舞い) の 一部である、JWL GET アクションからのみ起動します。 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。 このコンポーネントが関連付けられた コンテナーのコンテンツが、 この URL のコンテンツによって置き換えられます。 指定なしの場合、 またはその URL が参照するページに ID がない場合は、 コンテナーの ID が使用されます。 URL が参照するページ内に、この ID が存在しない場合は、 本文のコンテンツが使用されます。

title

要求の進行中に、 パネルのプライマリー・タグ (例えば div) と、 パネルに割り当てられた「一時的タブ停止位置」に、 そのタイトルが割り当てられます。 このタイトルは、 パネルにマウスオーバーしたときはツールチップとして表示され、 スクリーン・リーダーで使用することができます。

progress-actions

要求の進行中に、パネルに適用される JWL アクション (複数可)。 現在サポートされているアクションは、LOCKED だけです。

params

パラメーター名のリスト (セミコロン区切り)。 ページを検索するときに、 これらのパラメーター名と、param-fields で識別された 対応値とが組み込まれるように、URL がエンコードされます。

param-fields

ID のパラレル・リスト (params が指定されている場合)。 ID で識別されたフィールドの値が、 パラメーター名の値として URL 内にエンコードされます。 リスト・パラメーターのサイズと param-fields のサイズは、 同じでなければなりません。 パラメーター名は、 通常はフィールドの非修飾 ID になります。 一方、対応する param-fields は、 通常はフィールドの「修飾」ID になります。 例えば、フィールド form1:text1 の値をエンコードする 場合は、text1 を param として使用し、 form1:text1 を param-fields として使用してください。 この結果、text1=value が URL 上でエンコードされます。 このとき、フィールド form1:text1 の 現行フィールドが value になります。

on-start

要求の送信前に、 ここで指定する JavaScript™ 関数 が実行されます。 この関数に引数はありません。 false を返す場合、実行は停止します。この関数を oncomplete と併せて使用すると、要求の進行中に表示される内容をカスタマイズできます。

on-error

要求が失敗/タイムアウトした場合に、 ここで指定する JavaScript が 実行されます。 シグニチャーは (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)

属性の現行値を取得します。

サンプル・コード

AJAX 検索を、ID「form1:panelHelp」を持つパネルを含むページに追加します。 コンテンツを検索する要求が行われるたびに、 フィールド「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"));

フィードバック