Jsf-managed-beans
JSF-マネージドBean
管理対象Beanは、JSFに登録されている通常のJava Beanクラスです。 つまり、マネージドBeanは、JSFフレームワークによって管理されるJava Beanです。 マネージドBeanには、getterおよびsetterメソッド、ビジネスロジック、またはバッキングBean(BeanにはすべてのHTMLフォーム値が含まれます)が含まれます。
マネージドBeanはUIコンポーネントのモデルとして機能します。 管理対象Beanは、JSFページからアクセスできます。
XML設定の使用
注釈を使用する
@ManagedBeanアノテーション
もう1つの重要な属性は*熱心*です。 eager = "true"の場合、マネージドBeanは最初に要求される前に作成されます。そうでない場合、要求されたときにのみBeanが作成される "lazy"初期化が使用されます。
スコープ注釈
スコープアノテーションは、マネージドBeanが配置されるスコープを設定します。 スコープが指定されていない場合、Beanはデフォルトでスコープをリクエストします。 次の表で、各スコープについて簡単に説明します。
S.No | Scope & Description |
---|---|
1 |
@RequestScoped Beanは、HTTP要求/応答が存続する限り存続します。 HTTPリクエストに基づいて作成され、HTTPリクエストに関連付けられたHTTPレスポンスが終了すると破棄されます。 |
2 |
@NoneScoped Beanは、単一のEL評価の間存続します。 EL評価時に作成され、EL評価の直後に破棄されます。 |
3 |
@ViewScoped Beanは、ユーザーがブラウザーのウィンドウ/タブで同じJSFビューと対話している限り存続します。 HTTPリクエストで作成され、ユーザーが別のビューにポストバックすると破棄されます。 |
4 |
@SessionScoped Beanは、HTTPセッションが存続する限り存続します。 セッションでこのBeanに関係する最初のHTTP要求で作成され、HTTPセッションが無効化されると破棄されます。 |
5 |
@ApplicationScoped Beanは、Webアプリケーションが存続する限り存続します。 アプリケーションでこのBeanに関係する最初のHTTP要求で作成され(Webアプリケーションが起動し、@ ManagedBeanでeager = true属性が設定されると)、Webアプリケーションがシャットダウンすると破棄されます。 |
6 |
@CustomScoped Beanは、このスコープ用に作成されたカスタムマップ内のBeanのエントリが存続する限り存続します。 |
@ManagedPropertyアノテーション
JSFは、単純な静的依存性注入(DI)フレームワークです。 @ ManagedProperty 注釈を使用して、マネージドBeanのプロパティを別のマネージドBeanに注入できます。
応用例
マネージドBeanの上記のアノテーションをテストするテストJSFアプリケーションを作成しましょう。
Step | Description |
---|---|
1 | Create a project with a name helloworld under a package com.finddevguides.test as explained in the JSF - Create Application chapter. |
2 | Modify HelloWorld.java as explained below. Keep the rest of the files unchanged. |
3 | Create Message.java under a package com.finddevguides.test as explained below. |
4 | Compile and run the application to make sure business logic is working as per the requirements. |
5 | Finally, build the application in the form of war file and deploy it in Apache Tomcat Webserver. |
6 | Launch your web application using appropriate URL as explained below in the last step. |
HelloWorld.java
Message.java
home.xhtml
すべての変更を完了したら、JSF-アプリケーションの作成の章で行ったようにアプリケーションをコンパイルして実行します。 すべてがアプリケーションで問題ない場合、次の結果が生成されます。