ここでは、ビジネスメソッドの実行時に指定するコールバック関数について説明します。
callback
callbackには、正常終了時に実行する処理または関数を指定します。
callbackの引数には、サーバからの戻り値が渡されます。サーバからの戻り値がない場合には、引数なしで呼び出されます。
戻り値となるデータBeanには、送信データを受け取るデータBeanとは異なるデータBeanを指定することができます。この際、戻り値となるデータBeanについては、Ajaxフレームワーク環境定義ファイルのデータBeanの定義(dataBeans)は必要ありません。Ajaxフレームワーク環境定義ファイルは、デフォルトの設定以外でデータ型変換を行いたい場合に定義する必要があります。
以下に、callbackで、mypkg.CustomerBeanクラスを戻り値として受け取る例を示します。
戻り値となるデータBeanの記述例
package mypkg;
import com.fujitsu.uji.DataBean;
public class CustomerBean extends DataBean
{
protected String customerId;
protected String customerName;
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public String getCustomerName() {
return customerName;
}
public void setCustmerName(String customerName) {
this.customerName = customerName;
}
}ビジネスクラスの記述例
package mypkg;
import com.fujitsu.uji.DispatchContext;
import com.fujitsu.uji.GenericHandler;
public class MyHandler extends GenericHandler
{
public boolean init() {
return true;
}
public Object doSomething(DispatchContext context, BodyBean dataBean) {
// 業務ロジックを記述
(省略)
// 戻り値はreturnで記述
CustomerBean retBean = new CustomerBean();
// customerId、customerNameの設定
(省略)
return retBean;
}
}callbackの記述例
var option = {
...,
callback:function(res){
customerModel.setProperty("cid", res.customerId);
customerModel.setProperty("cname", res.custmerName);
}
};errorHandler
errorHandlerには、エラー発生時に実行する処理または関数を指定します。
errorHandlerの引数には、エラーオブジェクトが渡されます。詳細は、“3.10 通信フレームワーク内のエラー”を参照してください。
以下に、エラー発生時にエラーコードとエラーメッセージをalertで表示する場合の記述例を示します。
var option = {
...,
errorHandler:function(err){
alert( "Application Error ( " + err.errorCode + " : " + err.message + " )" );
}
};preInvoke
preInvokeには、メソッド呼出し直前に実行する処理または関数を指定します。
以下に、preInvokeが呼び出される際に、処理時刻をデバッグメッセージに出力する場合の記述例を示します。
var option = {
...,
preInvoke:function(){
var lcDate = new Date();
RCF.debug( lcDate.toLocaleString() + " : preInvoke " ); }
};postInvoke
postInvokeには、メソッド呼出し直後に実行する処理または関数を指定します。
以下に、postInvokeが呼び出される際に、処理時刻をデバッグメッセージに出力する場合の記述例を示します。
var option = {
...,
postInvoke:function(){
var lcDate = new Date();
RCF.debug( lcDate.toLocaleString() + " : postInvoke " ); }
};