JSF利用のWebアプリケーションの構成
JSFを利用する場合、一般的なJSP/サーブレットによるWebアプリケーションと比べると、用意しなければいけないファイル類が増えてきます。JSF利用のWebアプリケーションで必要なものを整理すると、以下のようになるでしょう。
・表示用JSPファイル――画面の表示のためのJSPファイルは、普通のJSPファイルと同じように、Webのコンテンツ用ディレクトリ(Webアプリケーションのディレクトリ)に配置します。
・管理用Beanファイル――これはサーブレットなどと同様に、「WEB-INF」内の「classes」内にクラスファイルを配置します。
・web.xml――サーブレットなどを登録するweb.xmlが必ず必要になります。ここに、JSFで使用する専用のサーブレットを登録しておく必要があります。
・JSF設定ファイル――「WEB-INF」内に、JSFの設定ファイルを用意する必要があります。これはXMLファイルで、JSFが必要とする情報を記述しておくものです。
Tomcatの「webapps」内に適当にフォルダを用意し、そこにこれらのファイルを組み込んでいくことにしましょう。ここではサンプルとして「webapp1」というフォルダを用意し、ここにJSFのファイルを追加していくことにします。
web.xmlを編集する
では、順に作成をしていきましょう。まずは、web.xmlの編集からです。JSFは、全体の管理をする「Facesサーブレット」と呼ばれるものが用意されており、これが全体のプログラムの制御を行っています。このサーブレットをweb.xmlに登録しておく必要があります。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>webapp1</display-name>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
ここでは、Faces Servletというサーブレットを登録していますね。この<servlet>タグと<servlet-mapping>タグの部分が、JSFを利用するために追記した部分です。これで、Facesサーブレットが登録されました。
faces-config.xmlの作成
続いて、JSFの設定ファイルを作成しましょう。これは、「faces-config.xml」というファイル名で、「WEB-INF」内に配置します。
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
version="1.2">
</faces-config>
ここでは、<faces-config>というタグだけが用意されていますね。といっても、中身はまだ何もありません。まだJSFらしい機能は使いませんから、何も設定は必要ないのですね。実際には、このタグの中に、いろいろと設定内容を追記していくことになります。