JavaScriptアプリケーションからビジネスロジックを非同期通信で呼び出すには、RcfRequestオブジェクトのsend関数を使用します。
JavaScriptアプリケーションとビジネスロジック間を非同期で通信するための関数です。
JavaScriptアプリケーションの送信データであるオブジェクトを、非同期通信を使用して送信(POST)します。また、ビジネスロジックの処理結果をJavaScriptのオブジェクトとして受け取り、JavaScriptアプリケーションのコールバック関数にパラメーターとして渡します。
RcfRequest.send関数の記述形式
以下に、RcfRequest.send関数の記述形式を示します。
RcfRequest.send(dataObj, requestParams, option);
dataObj
サーバ側に送信するデータのオブジェクトです。
データを送信しない場合は、nullを指定します。
requestParams
JavaBeanのIDや任意のリクエストパラメーターなど、ビジネスロジックの動作を制御するための値を格納したリクエストパラメーターオブジェクトです。
リクエストパラメーターが不要な場合は、nullを指定します。
以下に、リクエストパラメーターオブジェクトのプロパティを示します。
プロパティ名 | 概要 | 型 | 省略可否 |
---|---|---|---|
beanId | 送信データを格納するJavaBeanの識別子 | string | dataObjがnullの場合は省略可 |
任意 | アプリケーションが任意に設定できるリクエストパラメーター | string | 可 |
option
RcfRequestオブジェクトの動作を制御するための値を格納した通信設定オブジェクトです。
optionにnullが指定された場合、または省略された場合は、通信せずにエラーが発生します。
以下に、通信設定オブジェクトのプロパティを示します。
プロパティ名 | 概要 | 型 | 省略可否 |
---|---|---|---|
url | サーブレットのURL | string | 不可 |
callback | レスポンスハンドラ(正常終了時のコールバック) | function | 不可 |
errorHandler | エラーハンドラ(エラー発生時のコールバック) | function | 可 |
timeout | タイムアウト時間(ミリ秒) | number | 可 |
preInvoke | メソッド呼出し直前に呼ばれるコールバック | function | 可 |
postInvoke | メソッド呼出し完了直後に呼ばれるコールバック | function | 可 |
以下に、通信設定オブジェクトのプロパティに関する注意事項を示します。
各種コールバック関数がnullの場合、コールバック呼出しは行われません。
プロパティの型がfunctionとなっているものは、JavaScriptの関数を指定します。
以下に、callbackプロパティにレスポンスハンドラを記述する例を示します。
var option = { ..., // サーバからの戻り値を引数に指定 // 引数の名前は任意 callback:function(res){ // サーバからの戻り値に対する処理を記述 ...; } };
RcfRequest.send関数の記述例
以下に、RcfRequest.send関数の記述例を示します。
以下の例では、「databean」をIDとするJavaBeanにデータが格納されます。
function clickExecuteButton() { // dataObjの作成 var dataObj = new Object(); dataObj.key = ...; // requestParamsの作成 var reqParam = { beanId :'databean', // JavaBeanのIDを指定 command:'init' // コマンド名を指定(任意) }; // optionの作成 var option = { url:'entry', callback:function(res){ // 受信したオブジェクト(res)の処理 ...; } }; try { RcfRequest.send(dataObj, reqParam, option); } catch (e) { alert("Application Error (" + e.message + " )"); } }
RcfRequest.send関数が通知する例外
RcfRequest.send関数が通知する例外については「J.2.2 通信フレームワーク(JavaScript)に関するメッセージ」および「J.3.9 サーブレット連携機能に関するメッセージ」を参照してください。