AjaxフレームワークアプリケーションとApcoordinatorアプリケーションとの間で、データBeanを共有することができます。データBeanを共有することにより、Apcoordinatorアプリケーションで利用するデータBeanの情報を、Ajaxフレームワークアプリケーションで更新することができます。
ここでは、データBeanを共有するための方法について説明します。
データBeanの作成
データBeanの作成方法は、通常の作成方法と同じです。詳細は、“3.2.1 データBeanの作成”を参照してください。
ビジネスクラスの作成
ビジネスクラスの作成方法は、通常の作成方法と同じです。詳細は、“3.2.3 ビジネスクラスの作成”を参照してください。
データBeanを共有するためには、DispatchContextクラスのsetResponseBeanメソッドを利用します。setResponseBeanメソッドの領域名に指定した名前を、ビジネスメソッド実行時のbeanIdリクエストパラメタに指定するデータBean IDとして使用することにより、Apcoordinatorが保持するデータBeanにデータが格納されます。
以下に、ApcoordinatorアプリケーションとデータBeanを共有する場合の、ビジネスクラスの記述例を示します。
以下の例では、Apcoordinatorの表示画面の領域名(body)に設定されたデータBean(BodyBean)を共有します。
package mypkg;
import com.fujitsu.uji.DispatchContext;
import com.fujitsu.uji.GenericHandler;
public class MyHandler extends GenericHandler
{
public boolean init() {
return true;
}
/**
* Apcoordinatorの初期画面表示の処理
*/
public void startup(DispatchContext context) {
BodyBean dataBean = new BodyBean();
// 初期データの設定
(省略)
// 領域名(body)にデータBean(BodyBean)を設定
context.setResponseBean("body", dataBean);
}
/**
* Apcoordinator連携の処理
*/
public Object doSomething(DispatchContext context, BodyBean dataBean) {
// 業務ロジックを記述
(省略)
// 戻り値はreturnで記述
NextBean retBean = new NextBean();
return retBean;
}
}コマンドマップの定義
作成したビジネスクラスのメソッドを呼び出すために、コマンドマップを定義します。
コマンドマップの記述形式については、“3.2.4 コマンドマップの定義”を参照してください。
以下に、ApcoordinatorアプリケーションとデータBeanを共有する場合のコマンドマップの定義例を示します。
# commands.map ## Apcoordinator ;=mypkg.MyHandler.startup ## Ajax mypkg.BodyBean;execute=mypkg.MyHandler.doSomething
ビジネスメソッドの実行
ApcoordinatorアプリケーションとデータBeanを共有する場合には、UjiRequest.send関数のbeanIdリクエストパラメタにデータBeanを関連付けたデータBean IDを指定します。
ここで指定するデータBean IDは、DispatchContextクラスのsetResponseBeanメソッドに指定された領域名となります。
以下に、ApcoordinatorアプリケーションとデータBeanを共有する場合の、UjiRequest.send関数の記述例を示します。
以下の例では、Apcoordinatorの表示画面の領域名(body)に関連付けられたデータBeanにデータが格納されます。データBeanの関連付けについては、“3.2.3 ビジネスクラスの作成”を参照してください。
function clickExecuteButton() {
// requestParams
var reqParam = {
beanId:'body', // 領域名を指定
verb:'execute' // コマンド名を指定
};
// option
var option = {
url:'acf/apc',
callback:function(res){
}
};
UjiRequest.send(data,reqParam,option);
}参考
ApcoordinatorアプリケーションとデータBeanを共有する場合には、Ajaxフレームワーク環境定義ファイルのdataBean要素の指定を省略できます。