はしくれエンジニアもどきのメモ

情報系技術・哲学・デザインなどの勉強メモ・備忘録です。

Java Beansクラスについて

Java Beansクラスについて

Java Beans クラスについてのメモ。

環境

JavaBeans(Beanクラス)について

JavaBeans(Beanクラス)の役割

MVCモデルのM(モデル)を担当するクラスになる。 データの受け渡しを便利にする。

画面(JSP)に表示するために必要なデータである プロパティを扱うクラスになる。

画面に表示する情報の例として、以下がある。

  • ID

  • ユーザ名

  • 年齢

  • など

Beanクラスとも呼ばれる。 コーヒー豆が名前の由来になっているらしい。

JavaBeansのルール

JavaBeansは規格が決まっているので、 それらのルールに従って作成する必要がある。

ルールは主に7つ。

  • クラス名は「○○○Bean」とする。

    
    public class UserBean {
      ...
    }
    
  • メンバフィールドはprivateのメンバ変数にする

    
    public class UserBean {
      private String id;
      ...
    }
    
  • メンバフィールドへのアクセサメソッドが必要

    private になっているので、setter とgetter が必要。

  • メンバフィールドはprivateのメンバ変数にする

    
      public class UserBean {
        private String id;
        ...
      }
      
  • アクセサメソッドの接頭語には 「set」,「get」をつける

    setter なら「set○○」とし、 getter なら「get○○」とする。

    
    public class UserBean {
      private String id;
    
      // setter
      public void setId(String id){
        this.id = id;
      }
      // getter
      public String getId(){
        return this.id;
      }
      ...
    }
    
  • publicで引数なしのコンストラクタが必要

    
    public class UserBean {
      private String id;
    
      // constructor
      public UserBean(){
        this.id = "";
      }
    
      // setter
      public void setId(String id){
        this.id = id;
      }
      // getter
      public String getId(){
        return this.id;
      }
      ...
    }
    
  • 直列化(シリアライズ)のために、 Serializableインターフェースが必要

    
    public class UserBean implements Serializable {
      private String id;
    
      // constructor
      public UserBean(){
        this.id = "";
      }
    
      // setter
      public void setId(String id){
        this.id = id;
      }
      // getter
      public String getId(){
        return this.id;
      }
      ...
    }
    
  • ユニークなserialVersionUIDを設定

    
    public class UserBean implements Serializable {
      private static final long serialVersionUID  = 1L;
    
      private String id;
    
      // constructor
      public UserBean(){
        this.id = "";
      }
    
      // setter
      public void setId(String id){
        this.id = id;
      }
      // getter
      public String getId(){
        return this.id;
      }
      ...
    }
    

JavaBeansのサンプル

ログインのサンプル。 (管理者)権限のあるユーザ(web01)は、 IDと名前と年齢が表示される。 権限のないユーザ(web02)は名前のみ表示される。

コード

Beanクラスを使っているjsp

Beanクラスの場合、 アクションタグでgetterのように呼び出しできる。

getterの場合:


<p>ID:<%=user.getId()%></p>
<p>名前:<%=user.getName()%></p>
<p>年齢:<%=user.getAge()%></p>

アクションタグの場合:


<p>ID:<jsp:getProperty property="id" name="user"/></p>
<p>名前:<jsp:getProperty property="name" name="user"/></p>
<p>年齢:<jsp:getProperty property="age" name="user"/></p>

コード全体

Beanクラスを使ったSample

実行結果

input form

一般権限の場合(auth==0)、 名前のみ表示。

一般権限の場合(auth==0)

一般権限の場合(auth==1)、 ID、名前、年齢を表示。

管理者権限の場合(auth==1)

ID未確認の場合はエラー画面へ。

error画面