Javaプログラミング/Javaプログラミング関連情報

DWRが実現する次世代AJAX(後編)(3ページ目)

前回、DWRの基本について説明をしました。後編では、いよいよ「リバースAJAX」を実際に使ってみましょう。

執筆者:掌田 津耶乃

Beanを利用する


これでBeanを利用する準備は整いました。では、index.htmlを作成し、MyBeanManagerから投稿データを受け取って表示するページを作ってみましょう。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Insert title here</title>
<script type='text/javascript' src='/dwrweb/dwr/interface/MyBeanManager.js'></script>
<script type='text/javascript' src='/dwrweb/dwr/engine.js'></script>
<script type="text/javascript" src="/dwrweb/dwr/util.js"> </script>
<script type="text/javascript">
<!--
MyBeanManager.getByTableString(managerFunc);
MyBeanManager.getLastData(managerSetLast);

function managerFunc(str){
  document.getElementById("datalist").innerHTML = str;
}
function managerSetLast(bean){
  var str = "(no data)";
  if (bean != null)
    str = "[" + bean.title + "] (by " + bean.name + ")";
  document.getElementById("lastmsg").innerHTML = "last data:" + str;
}
function clickBtn(){
  var str1 = document.getElementById("name").value;
  var str2 = document.getElementById("title").value;
  var str3 = document.getElementById("content").value;
  MyBeanManager.add(str1,str2,str3);
  alert("投稿を送信しました。リロードすると表示されます。");
}
//-->
</script>
</head>
<body>
<div id="lastmsg"></div><br>
Data List:
<div id="datalist"></div>
<br><hr>
<table>
<tr><td>Name:</td><td><input type="text" id="name"></td></tr>
<tr><td>Title:</td><td><input type="text" id="title"></td></tr>
<tr><td>Message:</td><td><textarea id="content"></textarea></td></tr>
<tr><td></td><td><input type="button" value="click" onclick="javascript:clickBtn();"></td></tr>
</table>
</body>
</html>


投稿を送信すると、それが一覧表示される。また最後に投稿されたデータがトップに表示される。


ここでは、一番上に最後の投稿が表示され、その後に全投稿データが一覧表示されます。一番下には投稿フォームがあり、ここから投稿をするとデータが登録されます。見ればわかりますが、ここではフォームはどこにもありません。JavaScriptからAJAXを使ってサーバに送信をし、サーバから必要な情報を非同期通信で受け取って表示をしています。最初に、このような処理を実行しているのがわかりますね。

MyBeanManager.getByTableString(managerFunc);
MyBeanManager.getLastData(managerSetLast);


ここで、getByTableStringとgetLastDataを呼び出し、それぞれの値を関数で処理しています。このあたりは前回説明したからわかるでしょう。また、managerSetLastでは、受け取ったMyBeanをこのように処理していますね。

function managerSetLast(bean){
  var str = "(no data)";
  if (bean != null)
    str = "[" + bean.title + "] (by " + bean.name + ")";
  document.getElementById("lastmsg").innerHTML = "last data:" + str;
}


引数で渡されたMyBean内の属性を、bean.nameというようにしてそのまま取り出し処理しています。dwr.xmlでMyBeanのコンバーターを定義していたために、このような扱いが可能になっているのです。


  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます