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>
コード全体
実行結果
一般権限の場合(auth==0)、 名前のみ表示。
一般権限の場合(auth==1)、 ID、名前、年齢を表示。
ID未確認の場合はエラー画面へ。
参考リンク