3.3.4. Ajax¶
intra-mart Accel Kaiden!では簡単にAjax通信が行るような機構を用意しています。本項では、intra-mart Accel Kaiden!を使用した基本的なAjax通信の方法を解説します。
3.3.4.1. 基本的なプログラミング方法¶
簡単な例を用い、Ajax通信の基本的なプログラミング方法を解説します。
Actionクラス「jp.co.slcs.kaiden2.base.foundation.model.dto.LogicResultDto」をJSONに変換したデータを返却してください。import jp.co.slcs.kaiden2.base.foundation.model.dto.LogicResultDto; import jp.co.slcs.kaiden2.base.foundation.util.ResponseWriter; import jp.co.slcs.kaiden2.base.foundation.conf.LogicResultStatus; import net.arnx.jsonic.JSON; @Execute(validator = false) public String index() { /**~略~**/ LogicResultDto result = new LogicResultDto(); result.data = "クライアントへの返却データ"; result.status = LogicResultStatus.SUCCESS.getName(); //成功ステータス result.message = "処理が成功しました。"; ResponseWriter.writeJSon(JSON.encode(result)); return null; } JSP(JavaScript)var ajax = KAIDEN.Ajax(); //Ajaxライブラリの呼び出し var criteria = {}; //サーバーに送信する値 //Ajax実行(POST通信) ajax.postAuto("/*URL*/" , criteria , function(returnData) { //正常時の処理 } , function(returnData) { //エラー時の処理 } , function(returnData) { //ワーニング時の処理 } );JSP側で、Ajax通信が終了すると次の様な処理を行います。
メッセージが設定されている場合は、LogicResultDto.statusの内容に応じて自動的にメッセージを表示します。“success”の場合、imuiShowSuccessMessage()を利用して成功メッセージを表示“fail”の場合、imuiShowErrorMessage()を利用してエラーメッセージを表示“warn”の場合、imuiShowWarningMessage()を利用してワーニングメッセージを表示 LogicResultDto.statusの内容に応じて、それぞれメソッドを呼び出します。この時、引数には LogicResultDto.dataで設定した値が渡されます。コラム
ajax.postAuto()は、正常時・エラー時・ワーニング時の処理が不要で、サーバーに値を送信する必要がなければ、ajax.postAuto(“/*URL*/”); だけで実行できます。コラム
GET通信を行う場合には、ajax.getAuto()で同様の処理が行えます。
3.3.4.2. Ajax通信の応用¶
同期通信やGET/POSTの切り替えなどのプログラミング方法は『intra-mart Accel Kaiden! JsDoc』のKAIDEN.base.foundation.Ajaxを参照してください。メッセージ表示やその他の処理を細かく制御したい場合には、次のメソッドを使用してください。(どちらのメソッドも$.ajax()を返却しますので、処理を細かく制御することができます。)
- KAIDEN.base.foundation.Ajax#post ( String url, Object data, Function success ) : XMLHttpRequest
- KAIDEN.base.foundation.Ajax#get ( String url, Object data, Function success ) : XMLHttpRequest