faces-config.xmlの修正
これで管理Beanクラスはできましたが、このままではBeanは使えません。これをJSFに登録してやる必要があるのです。faces-config.xmlを開き、<faces-config>タグの中に、以下のタグを追加してやります。
<managed-bean>
<managed-bean-name>page1Bean</managed-bean-name>
<managed-bean-class>jp.allabout.Page1Bean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
管理Beanの登録は、この<managed-bean>タグを書いて行います。このタグ内には、<managed-bean-name>と <managed-bean-class>、そして<managed-bean-scope>を用意します。<managed-bean-name>に管理Bean名、<managed-bean-class>に管理Beanクラス、<managed-bean-scope>にBeanのスコープをそれぞれ記述します。ここでは、jp.allabout.Page1Beanクラスをpage1Beanという名前で登録しています。Beanのスコープは、requestを指定しておきました。page1Beanという名前は、先にJSPで関連付けを行うときに、管理Bean名として指定した名前でしたね。ここで、Beanの名前が設定されていたのですね。
さて、これで完成しました。管理Beanをコンパイルし、それぞれのファイルを「webapp1」内に配置してプロジェクトを管理させましょう。管理Beanのコンパイルには、注意が必要です。JSFのクラスを使用していますから、Tomcatの「lib」フォルダに用意したjsf-api.jar、jsf-impl.jarをclasspath環境変数に追加しておく必要があります。これを忘れるとコンパイルエラーになるので注意してください。
Beanクラスを作成し、それぞれのファイルを配置したら、http://localhost:8080/webapp1/page1.jsfにアクセスしてみましょう。入力フィールドのあるフォームが表示されます。ここに適当にテキストを書き、送信すると、テキストが表示されます。
テキストを書いて送信すると、メッセージが表示される。 |
入力フィールドのテキストを取り出し、表示用テキストの値として画面に設定していることがわかりますね。管理Beanと表示用JSP、両者の間の関連付けについてしっかり理解しましょう。これがJSFのもっとも基本となる仕組みなのですから。