Ajaxフレームワークを利用した通信、および画面部品内での通信において、リクエスト送信時のURLに任意のクエリ文字列を付加することができます。
負荷分散装置などの中継機器やサーバ側の処理において、URLにクエリ文字列を付加する必要がある場合は、本機能を使用してください。
クエリ文字列を付加するには、動作定義によって付加する方法と、JavaScript APIによって付加する方法があります。
ここでは、以下の項目について説明します。
動作定義によってクエリ文字列を付加する方法
URLに付加するクエリ文字列は、Ajaxフレームワークの動作定義に追加することによって、設定することができます。
以下に、key1=value1&key2を送信する場合の設定例を示します。
RCF_config = { // key1=value1&key2を送信する場合 queryString: {key1:'value1', key2:''} };
クエリ文字列がキーだけで値を持たない場合は、上記の例(key2:'')のように、空文字を指定します。
RCF_configオブジェクトのqueryStringプロパティについては、「2.3.2 Ajaxフレームワークの動作定義」を参照してください。
以下に、クエリ文字列指定時の注意事項について説明します。
URLに設定するホスト名の文字列長によっては、クエリ文字列に設定可能な文字列長の考慮が必要です。URLとして有効な文字列長は、最大で2083バイトです。
キーと値を区切るための「=」、クエリ文字列を複数指定した場合のキーとキーを区切るための「&」は、設定文字数として計上されます。
URLエンコードの対象となる文字列が設定された場合、URLエンコード処理後の文字列数が計上されます。例えば、文字コード「UTF-8」の実行環境において、文字列「あ」が設定された場合は、9バイト(%E3%81%82)として処理されます。
URLの文字列長が2083バイトを超える文字列が設定された場合は、エラーメッセージ(RCF20005)が出力されます。
クエリ文字列に設定された値に異常がある場合は、エラーメッセージ(RCF20006)が出力されます。
JavaScript APIによってクエリ文字列を付加する方法
JavaScript APIによってクエリ文字列を付加する場合は、以下のAPIを利用します。
JavaScript API | 説明 |
---|---|
パラメーターには、URLに付加するクエリ文字列を連想配列で指定します。 クエリ文字列指定時の注意事項については、「動作定義によってクエリ文字列を付加する方法」を参照してください。 パラメーターの設定値に異常がある場合は、エラーメッセージ(RCF20009)が出力されます。 | |
パラメーターには、URLに付加するクエリ文字列のキー名と値を指定します。 クエリ文字列指定時の注意事項については、「動作定義によってクエリ文字列を付加する方法」を参照してください。 keyパラメーターには、nullを指定することはできません。valueパラメーターには、nullを指定することができます。valueパラメーターにnullを指定した場合、keyだけがクエリ文字列として作成されます。 |
クエリ文字列を利用する項目
動作定義やJavaScript APIによって設定されたクエリ文字列は、以下の項目でURLに付加されます。
UI部品
ComboBox部品
buttonImageプロパティ
FragmentContainer部品
srcプロパティ
statusIconImageプロパティ
Window部品、PopupCalendar部品
closeButtonImageプロパティ
ViewColumnImage部品
モデルに指定した配列データに含まれる表示画像のURL
TreeView部品、ContextMenu部品
headImageプロパティ
通信フレームワーク
Apcoordinator連携機能、サーブレット連携機能
optionオブジェクトに設定するurlプロパティ
マッシュアップフレームワーク
クライアント通信API
optionオブジェクトに設定するurlプロパティ
その他
Ajaxフレームワークが内部処理で利用するURL指定
イベントログ機能
UI部品を初期化するためのJavaScriptファイルの取得、など
注意
以下に示すHTMLタグによって記述されたリソースの取得では、Ajaxフレームワークで設定されたクエリ文字列は付加されません。
アプリケーションで付加する必要があります。
<script>タグ
Ajaxフレームワークの動作定義、Ajaxフレームワークの初期化処理、ユーザー定義のJavaScriptファイルの取得も対象です。
<img>タグ
Button部品の子要素として記述した<img>タグも対象です。
<a>タグ
<link>タグ
JavaScript APIによって任意のURLにクエリ文字列を付加する方法
以下のAPIを利用すると、任意のURLに対して、動作定義やJavaScript APIによって設定されたクエリ文字列を付加することができます。
JavaScript API | 説明 |
---|---|
RCF_configオブジェクトに設定されたクエリ文字列が、URLに付加可能な形式に変換されて返されます。 クエリ文字列指定時の注意事項については、「動作定義によってクエリ文字列を付加する方法」を参照してください。 |
サーバ側でクエリ文字列を利用する方法
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"); ... }