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

第3章 通信フレームワーク> 3.2 Apcoordinator連携機能

3.2.8 ApcoordinatorとのデータBeanの共有

AjaxフレームワークアプリケーションとApcoordinatorアプリケーションとの間で、データBeanを共有することができます。データBeanを共有することにより、Apcoordinatorアプリケーションで利用するデータBeanの情報を、Ajaxフレームワークアプリケーションで更新することができます。

ここでは、データBeanを共有するための方法について説明します。

■データBeanの作成

データBeanの作成方法は、通常の作成方法と同じです。詳細は、“データBeanの作成”を参照してください。

■ビジネスクラスの作成

ビジネスクラスの作成方法は、通常の作成方法と同じです。詳細は、“ビジネスクラスの作成”を参照してください。

データ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;
    }
}

■コマンドマップの定義

作成したビジネスクラスのメソッドを呼び出すために、コマンドマップを定義します。
コマンドマップの記述形式については、“コマンドマップの定義”を参照してください。

以下に、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の関連付けについては、“ビジネスクラスの作成”を参照してください。

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要素の指定を省略できます。


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

Copyright 2009 FUJITSU LIMITED