JSF 2.0 hello worldの例

JSF 2.0 Hello Worldの例

このチュートリアルでは、JavaServer Faces(JSF)2.0のHello Worldの例を開発する方法、JSF 2.0の依存関係、基本的な注釈、および構成のリストを示します。

プロジェクト環境

このJSF 2.0の例は、次のツールとテクノロジーで構築されています

  1. JSF 2.1.7

  2. メーベン3

  3. Eclipse 3.6

  4. JDK 1.6

  5. Tomcat 6.0.26

最初に、対応するファイルまたはフォルダーを後でどこで作成する必要があるかわからない場合に、最終的なプロジェクト構造を確認します。

jsf2-hello-world-example

1. JSF 2.0の依存関係

Maven central repository has the JSF version up to 1.2 only, to get the *JSF 2.0Java.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

長い記事はプロジェクトのデモで終わります:)

jsf2-hello-world-example-1

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

jsf2-hello-world-example-2

ボタンをクリックすると、送信されたテキストボックスの値が表示されます。

ソースコードをダウンロード

ダウンロード(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)