JSF Managed-Beanの定義・設定・使い方
2009/03/16 14:48Update
JSF Managed-Beanは画面の入出力データを管理したり、ビジネスロジックを記述したりするJavaBeanです。本文は、JSF Managed-Beanの定義、JSPからのManaged-Bean利用方法、およびfaces-config.xmlでの設定の仕方などについて説明します。
JSF MVCモデル
JSFはMVCモデルを採用しています。
◇ M(モデル):Managed-Bean(JavaBean)
◇ V(ビュー):JSP
◇ C(コントローラ):FacesServlet
Managed-Beanの機能・特徴
◇ JSF MVCモデルのM(モデル)部分
◇ 画面(JSP)の表示データと画面からのパラメータの保持
・JSP/Managed-Beanプロパティのバイディング
◇ ビジネスロジック
・アクション
・イベント
・ビジネスロジック
Managed-Beanの作成例
JSFのManaged-Beanはあくまで普通のJavaBean、いわゆるPOJO(Plain Old Java Object)クラスです。
画面表示とパラメータを格納するためのプロパティ(およびそのgetter/setterメソッド)やビジネスロジックメソッドを定義するだけでよいのです。
例:
LoginBean.javapublic class LoginBean {
private String userId; //ユーザID
private String userPassword; //パスワード
//userIdを設定する
public void setUserId(String userId) {
this.userId = userId;
}
//userIdを取得する
public String getUserId() {
return userId;
}
//userPasswordを設定する
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
//userPasswordを取得する
public String getUserPassword() {
return userPassword;
}
//ログイン処理
public String doLogin() {//voidでもよい。voidの場合、自画面に戻る
//TODO ビジネスロジックここで記述
return "login"; //戻り値(遷移先)。nullや""と戻される場合、自画面に戻る
}
}
※LoginBeanクラスを見ればわかると思います。JSF独自のコード何も書かれていません。
※ここでのプロパティuserIdやuserPasswordはJSPのJSFのUIコンポーネントとバインド(Value Binding)することができます。もちろん、JSPと関係のないプロパティを書くこともできます。
ちなみに、LoginBeanとバインドするJSPは以下のような形になります。
login.jsp<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<title>ログイン</title>
</head>
<body>
<h1>ログイン</h1>
<hr />
<f:view>
<h:form>
ユーザID:<h:inputText id="userId" value="#{LoginBean.userId}" />
<br/>
パスワード:<h:inputText id="userId" value="#{LoginBean.userPassword}" />
<br/>
<h:commandButton id="login" action="#{LoginBean.doLogin}" value="ログイン" />
</h:form>
</f:view>
</body>
</html>
※LoginBeanはManaged Beanで、Managed Beanを利用するためには、faces-config.xmlにその旨の設定を記述する必要があります。
faces-config.xml<?xml version="1.0"?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> <faces-config> <managed-bean> <managed-bean-name>LoginBean</managed-bean-name> <managed-bean-class>com.syboos.LoginBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config>
1)managed-bean-name要素にManaged Beanの名前を記述します。ここで記述した名前をJSPから引用できます。
2)managed-bean-class要素にManaged Beanのフルネームのクラス名を記述します。
3)managed-bean-scope要素はManaged Beanのライフサイクルを示します。applicationやsession、requestなどの内容を入ります。
faces-config.xmlの詳細について、他の記事で詳しく紹介したいと思います。
※以上のような記述で、ログインボタンを押下時、LoginBeanのdoLogin()メソッドが呼ばれ、ユーザは入力した「ユーザID」がLoginBeanのuserIdプロパティに、「パスワード」がLoginBeanのuserPasswordに自動的にセットされます。
Sponsored Link
- Relative Articles
- JSFプロジェクト階層構造例 - (2009/06/20 16:39)
- JSFのインストール - 初めてのJSFアプリ作成・実行 - (2009/06/23 16:24)
- ライフサイクルから理解するJSFの仕組み - (2009/06/24 17:43)
- JSF開発におけるweb.xmlの基本的な設定方法 - (2009/03/13 18:13)
- JSF Webページ(JSP)の基本的な書き方 - (2009/03/16 11:58)
- JSF メッセージ処理 概要 - (2009/06/20 20:01)
- JSF Validator入門 - 標準Validator及びその使い方 - (2009/06/22 18:26)
- JSF Converter入門 - 標準Converter及びその使い方 - (2009/06/23 17:17)
- JSF画面遷移 - (2009/06/24 18:08)
- JSFで複数ボタンでの Validator問題 - (2009/09/02 17:58)