| エンタープライズ:特集 | 2003/07/01 15:46:00 更新 |
JAVA Developer 2003年8月号より転載
FlashとTomcatで実現する使いたくなるWebアプリ (6/10)
(3)サーバーとの通信(リスト6)
すべての入力が行われたあと、sendResultでサーバーに結果を送信します。
XMLオブジェクトに対する操作は、JAXPのDocumentを使用したJavaの場合と基本的に変わりありません。XML文書を送信するメソッドは、sendとsendAndLoadの2つがあります。前者は送信後、サーバーからブラウザで表示するためのHTMLが返されることを前提としているため、ここではXMLが返信されるsendAndLoadを使用しました。loadと同様、sendAndLoadでもロード後の処理はコールバック関数(onResultResponse)で行います。今回は、通信が成功したら「ありがとうございました」と表示するフレームに遷移させています。
sendAndLoadを呼び出す前のコールバック関数の設定は、レスポンスを受け取るXMLオブジェクトインスタンスに対して行うことに注意してください。しっかり考えれば当たり前のことですが、送信するXMLオブジェクトインスタンスにコールバック関数を設定しても呼び出されることはありません。
| リスト6 サーバーとの通信(フレームスクリプト内) |
function sendResult(){
var result_xml = new XML();
var root_xml = result_xml.createElement ("root");
result_xml.appendChild(root_xml);
for (var i = 0; i < result.length; i++)
{
trace ("result " + i + " : " + result[i].id);
var result_node = result_xml.createElement ("result");
var qid_node = result_xml.createElement (
"questionnaire-id");
qid_node.appendChild (
result_xml.createTextNode (result[i].qid));
result_node.appendChild (qid_node);
var value_node = result_xml.createElement ("value");
value_node.appendChild (
result_xml.createTextNode (result[i].value));
result_node.appendChild (value_node);
root_xml.appendChild (result_node);
}
trace (result_xml.toString());
result_xml.contentType = "text/xml; charset=shift_jis";
result_response = new XML();
result_response.onLoad = onResultResponse;
// result_xml.sendAndLoad(
// "http://localhost/questionnaire/save",result_response);
result_xml.sendAndLoad("save",result_response);
}
function onResultResponse (success)
{
if (success)
{
trace ("success");
_root.gotoAndStop ("end_page");
}
else
{
trace ("failed");
_root.gotoAndStop ("error_page");
}
}
|
前のページ | 1 2 3 4 5 6 7 8 9 10 | 次のページ
[佐藤 毅,JAVA Developer]
Copyright © ITmedia, Inc. All Rights Reserved.
