Ajaxフレームワーク ユーザーズガイド
目次 索引 前ページ次ページ

第3章 通信フレームワーク> 3.9 リクエスト送信時のURLについて

3.9.1 クエリ文字列の追加

Ajaxフレームワークを利用した通信、および画面部品内での通信において、リクエスト送信時のURLに任意のクエリ文字列を付加することができます。
負荷分散装置などの中継機器やサーバ側の処理において、URLにクエリ文字列を付加する必要がある場合は、本機能を使用してください。

クエリ文字列を付加するには、動作定義によって付加する方法と、JavaScript APIによって付加する方法があります。

ここでは、以下の項目について説明します。

動作定義によってクエリ文字列を付加する方法

URLに付加するクエリ文字列は、Ajaxフレームワークの動作定義に追加することによって、設定することができます。

以下に、key1=value1&key2を送信する場合の設定例を示します。

  RCF_config = {
    // key1=value1&key2を送信する場合
    queryString: {key1:'value1', key2:''}
  };

クエリ文字列がキーだけで値を持たない場合は、上記の例(key2:'')のように、空文字を指定します。
RCF_configオブジェクトのqueryStringプロパティについては、“Ajaxフレームワークの動作定義”を参照してください。

以下に、クエリ文字列指定時の注意事項について説明します。

JavaScript APIによってクエリ文字列を付加する方法

JavaScript APIによってクエリ文字列を付加する場合は、以下のAPIを利用します。

JavaScript API

説明

RCF.setQueryString(Object queryString)

パラメタには、URLに付加するクエリ文字列を連想配列で指定します。
設定済のクエリ文字列は、パラメタで指定したクエリ文字列に置き換わります。

クエリ文字列指定時の注意事項については、“動作定義によってクエリ文字列を付加する方法”を参照してください。

パラメタの設定値に異常がある場合は、エラーメッセージ(RCF20009)が出力されます。

RCF.addQueryString(String key, String value)

パラメタには、URLに付加するクエリ文字列のキー名と値を指定します。
設定済のクエリ文字列に、パラメタで指定したキーが追加設定されます。指定したキー名がすでに設定されている場合、古い値は指定した値に置き換わります。

クエリ文字列指定時の注意事項については、“動作定義によってクエリ文字列を付加する方法”を参照してください。

keyパラメタには、nullを指定することはできません。valueパラメタには、nullを指定することができます。valueパラメタにnullを指定した場合、keyだけがクエリ文字列として作成されます。
パラメタの設定値に異常がある場合は、エラーメッセージ(RCF20007)が出力されます。

クエリ文字列を利用する項目

動作定義やJavaScript APIによって設定されたクエリ文字列は、以下の項目でURLに付加されます。


以下に示すHTMLタグによって記述されたリソースの取得では、Ajaxフレームワークで設定されたクエリ文字列は付加されません。
アプリケーションで付加する必要があります。

JavaScript APIによって任意のURLにクエリ文字列を付加する方法

以下のAPIを利用すると、任意のURLに対して、動作定義やJavaScript APIによって設定されたクエリ文字列を付加することができます。

JavaScript API

説明

RCF.createQueryString()

RCF_configオブジェクトに設定されたクエリ文字列が、URLに付加可能な形式に変換されて返されます。
返却されるクエリ文字列は、以下のような形式になります。
?SVID01&key01=val01

クエリ文字列指定時の注意事項については、“動作定義によってクエリ文字列を付加する方法”を参照してください。

サーバ側でクエリ文字列を利用する方法

Apcoordinator連携機能、サーブレット連携機能でクライアントから送信されたクエリ文字列を取得する場合は、サーブレットのAPIを利用します。
以下に、ビジネスクラスからサーブレットのAPIを利用する方法を示します。

Apcoordinator連携機能を利用する場合

import javax.servlet.http.HttpServletRequest;
import com.fujitsu.uji.http.HttpDispatchContext;

  (省略)
public void login(DispatchContext context, mypkg.MyDataBean dataBean) {
  ...
  HttpServletRequest request = ((HttpDispatchContext)context).getServletRequest();
  // クエリ文字列全体を取得
  String query = request.getQueryString();
  // paramというキーに対する値を取得
  String value = request.getParameter("param");
  ...

}

サーブレット連携機能を利用する場合

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
  (省略)
public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  ...
  // クエリ文字列全体を取得
  String query = request.getQueryString();
  // paramというキーに対する値を取得
  String value = request.getParameter("param");
  ...

}

目次 索引 前ページ次ページ

Copyright 2009 FUJITSU LIMITED