エンタープライズ:特集 | 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.