JSF 2.0 Hello Worldの例
このチュートリアルでは、JavaServer Faces(JSF)2.0のHello Worldの例を開発する方法、JSF 2.0の依存関係、基本的な注釈、および構成のリストを示します。
プロジェクト環境
このJSF 2.0の例は、次のツールとテクノロジーで構築されています
-
JSF 2.1.7
-
メーベン3
-
Eclipse 3.6
-
JDK 1.6
-
Tomcat 6.0.26
最初に、対応するファイルまたはフォルダーを後でどこで作成する必要があるかわからない場合に、最終的なプロジェクト構造を確認します。

1. JSF 2.0の依存関係
Maven central repository has the JSF version up to 1.2 only, to get the *JSF 2.0、Java.net repositoryからダウンロードする必要がある場合があります。*
Maven中央リポジトリがJSFライブラリを2.1.7に更新しました。 以前のJava.netリポジトリは不要になりました。
For Java EE Application Server like Glassfish
ほとんどのJava EEアプリケーションサーバーにはbuild-in support for JSF 2.0があるため、開発目的で単一のJSFAPIをダウンロードする必要があります。
...javax.faces jsf-api 2.0 provided ... java.net.m2 java.net m2 repo http://download.java.net/maven/2
For simple servlet container like Tomcat
これは少し面倒です。次の依存関係をダウンロードする必要があります。
ファイル:pom.xml
4.0.0 com.example.common JavaServerFaces war 1.0-SNAPSHOT JavaServerFaces Maven Webapp http://maven.apache.org com.sun.faces jsf-api 2.1.7 com.sun.faces jsf-impl 2.1.7 javax.servlet jstl 1.2 javax.servlet servlet-api 2.5 javax.servlet.jsp jsp-api 2.1 com.sun.el el-ri 1.0 JavaServerFaces org.apache.maven.plugins maven-compiler-plugin 2.3.1 1.6 1.6
Note
JSF 2.0の依存関係の詳細については、このofficial JSF 2.0 release noteを参照してください。
Warning
el-ri.jarは、リリースノートに記載されていない場合でも、Tomcatサーブレットコンテナで議論の余地のある依存関係ですが、「http:// www。 example.com/jsf2/jsf-2-0-tomcat-it-appears-the-jsp-version-of-the-container-is-older-than-2-1/[JSPバージョンのコンテナが2.1より古い…]" エラーメッセージ。
Updated – 21-10-2010
この「el-ri.jar」は古すぎるため、Java.netの最新の「el-impl-2.2.jar」を使用することをお勧めします
org.glassfish.web el-impl 2.2
Updated – 25-07-2012
このel-ri.jar依存関係は、Tomcat7では不要になりました。
2. JSF 2.0マネージドBean
ユーザーデータを格納する名前プロパティを持つJava BeanまたはJSFマネージドBean。 JSFでは、マネージドBeanとは、JSFページからこのJavaクラスまたはBeanにアクセスできることを意味します。
JSF 2.0では、@ManagedBeanアノテーションを使用して、これがマネージドBeanであることを示します。
HelloBean.java
package com.example.common;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;
@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Note
JSF 1.xでは、faces-config.xmlでBeanを宣言する必要がありましたが、これはJSF2.0では不要になりました。
3. JSF 2.0ページ
JSF 2.0では、拡張子が.xhtmlのファイルであるXHTML file formatでJSFページを作成することをお勧めします。
次の2つのJSF 2.0ページを参照してください。
Note
JSF 2.0のコンポーネントまたは機能を使用するには、ページの上部でJSF namespaceを宣言します。
File : hello.xhtml – JSFテキストボックスをレンダリングし、「helloBean」(JSFマネージドBean)、「name」プロパティ、および「welcome.xhtml」を表示するボタンにリンクしますクリックすると「s」ページになります。
JSF 2.0 Hello World
JSF 2.0 Hello World Example - hello.xhtml
Note
JSF 1.xでは、ボタンがクリックされたときに表示するページを指定するために、「faces-config.xml」で「navigation rule」を宣言する必要がありました。 JSF 2.0では、ページ名をボタンの「action」属性に直接入力できます。 単純なナビゲーションの場合はそれで十分ですが、複雑なナビゲーションの場合は、「faces-config.xml」で「navigation rule」を使用することをお勧めします。
File : welcome.xhtml –送信されたテキストボックスの値を表示します。
JSF 2.0 Hello World
JSF 2.0 Hello World Example - welcome.xhtml
Welcome #{helloBean.name}
\{…}は、これがJSF expression language、この場合は\{helloBean.name}であることを示します。ページが送信されると、JSFは「helloBean」を見つけて、送信されたテキストボックスの値をsetName()メソッド。 welcome.xhtmlページが表示されると、JSFは同じセッション「helloBean」を再度検出し、getName()メソッドを介してnameプロパティ値を表示します。
4. JSF 2.0サーブレット構成
他の標準的なWebフレームワークと同様に、web.xmlファイルでJSFスタッフを構成する必要があります。
ファイル:web.xml
JavaServerFaces javax.faces.PROJECT_STAGE Development faces/hello.xhtml Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /faces/* Faces Servlet *.jsf Faces Servlet *.faces Faces Servlet *.xhtml
「javax.faces.webapp.FacesServlet」マッピングを定義し、それらのよく知られたJSFファイル拡張子(/faces/, .jsf、.xhtml*,.faces *)にマップします。
この場合、以下の4つのURLは同じhello.xhtmlを指しています。
JSF 2.0開発では、「javax.faces.PROJECT_STAGE」を「Development」に設定することをお勧めします。これにより、バグを簡単に追跡できるようにするための多くの有用なデバッグ情報が提供されます。 展開の場合は、「Production」に変更するだけです。顧客にこの厄介なデバッグ情報を見せたくないだけです:)。
5. Demo
長い記事はプロジェクトのデモで終わります:)

テキストボックスとボタンを備えたシンプルなJSFページ。

ボタンをクリックすると、送信されたテキストボックスの値が表示されます。
ソースコードをダウンロード
ダウンロード(v2.1.7の例)-JSF2.0-hello-world-example-2.1.7.zip(8KB)
ダウンロードする(古いv2.1.0-b03の例)-JSF-2-Hello-World-Example-2.1.0-b03.zip(8KB)