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

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

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

執筆者:掌田 津耶乃

MyBeanクラスの定義


では、プログラムの作成を行いましょう。まずは、投稿データを管理するjp.tuyano.MyBeanクラスの作成からです。<ファイル><新規><クラス>メニューを使い、jp.tuyanoパッケージ「MyBean」を作成しましょう。そして、以下のようにソースコード記述します。

package jp.tuyano;

public class MyBean {
  private String name;
  private String title;
  private String content;
  
  public MyBean(){
    name = "";
    title = "";
    content = "";
  }
  
  public MyBean(String name,
      String title,String content){
    this();
    this.name = name;
    this.title = title;
    this.content = content;
  }
  
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getTitle() {
    return title;
  }
  public void setTitle(String title) {
    this.title = title;
  }
  public String getContent() {
    return content;
  }
  public void setContent(String content) {
    this.content = content;
  }

  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((content == null) ?
        0 : content.hashCode());
    result = prime * result + ((name == null) ?
        0 : name.hashCode());
    result = prime * result + ((title == null) ?
        0 : title.hashCode());
    return result;
  }

  @Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    final MyBean other = (MyBean) obj;
    if (content == null) {
      if (other.content != null)
        return false;
    } else if (!content.equals(other.content))
      return false;
    if (name == null) {
      if (other.name != null)
        return false;
    } else if (!name.equals(other.name))
      return false;
    if (title == null) {
      if (other.title != null)
        return false;
    } else if (!title.equals(other.title))
      return false;
    return true;
  }

  @Override
  public String toString(){
    return this.name + "\n" + this.title +
        "\n" + this.content;
  }
}


ここでは、name、title、contentという3つのprivateフィールドを用意し、それぞれに値を保持するようにしてあります。また、hashcode、quals、toStringをオーバーライドしてMyBeanにあった値を返すように調整してあります。

続いて、マネージャクラスの定義です。これは、jp.tuyano.MyBeanManagerクラスとして以下のように定義をします。

package jp.tuyano;

import java.util.*;

public class MyBeanManager {
  ArrayList  
  public MyBeanManager(){
    data = new ArrayList  }
  
  public void add(String name,String title,String msg){
    String s1 = this.getEscapedString(name);
    String s2 = this.getEscapedString(title);
    String s3 = this.getEscapedString(msg);
    MyBean bean = new MyBean(s1,s2,s3);
    data.add(bean);
  }
  public void remove(MyBean bean){
    for(MyBean obj:data){
      if (bean.equals(obj)) data.remove(obj);
    }
  }
  
  public String getByTableString(){
    String result = "<table border='1'>\n";
    result += "<tr><th>Name</th><th>Title</th><th>Message</th></tr>\n";
    for(MyBean obj:data){
      result += "<tr><td>" + obj.getName() + "</td>";
      result += "<td>" + obj.getTitle() + "</td>";
      result += "<td>" + obj.getContent() + "</td></tr>\n";
    }
    result += "</table>\n";
    return result;
  }
  
  public MyBean getLastData(){
    MyBean bean = null;
    if (data.size() > 0)
      bean = data.get(data.size() - 1);
    return bean;
  }
  
  public String getEscapedString(String s){
    String res = s;
    res = s.replaceAll("<","&lt;");
    res = res.replaceAll(">","&gt;");
    res = res.replaceAll("\r","");
    res = res.replaceAll("\n","<br>");
    return res;
  }
}


ここでは、ArrayListを用意して、そこにMyBeanを保管し管理しています。addメソッドでBeanを追加し、removeで削除するわけですね。他、最後の投稿データをMyBeanとして受け取るgetLastData、全Beanの情報をHTMLのテーブルとして取得するgetByTableStringといったメソッドを用意しておきました。


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

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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