Java > JavaEE > WebTier > FaceletsIntro

  • Facelets=JSFのビュー宣言言語
  • JSPはJSF2.0に対してduplicated

What Is Facelets?


Developing a Simple Facelets Application

  • FaceletsでJSFアプリを作成するときの一般的なタスク
    • 管理ビーンの作成
    • コンポーネントタグでページを作成
    • ページ遷移の定義
    • FacesServletインスタンスのマッピング
    • 管理ビーンの宣言追加

Developing a Managed Bean

  • 典型的なJSFアプリケーションでは、ページは管理ビーンに結びつく
    • 管理ビーンのメソッドとプロパティはコンポーネントと関連している
    • @ManagedBeanで管理ビーンをJSF実装に登録する
    • @SessionScopedでビーンのスコープをセッションにする

Creating Facelets Views

  • FaceletsHTMLタグ h: でコンポーネントをページに追加
  • FaceletsCoreタグf:validateLongRangeでユーザ入力をバリデート

Conguring the Application

  • web.xml
    • 初期化パラメータ javax.faces.PROJECT_STAGE でソフトウェアライフサイクルを指定
      • Developmentでデバッグ情報の生成など
  • faces-config.xml
    • 管理ビーンの宣言、遷移ルール、リソースバンドルの設定

Templating

  • Faceletsでページのテンプレートを作成できる
    • 似たような構成のページを作り直さなくていい
    • 標準的なLook & Feelをメンテしやすい
  • テンプレートタグ
    ui:component コンポーネントツリーに追加されるコンポーネントを定義。このタグの外側の内容を無視
    ui:composition ページのコンポジットを定義、このタグの外側の内容を無視
    ui:debug デバッグコンポーネントを定義
    ui:decorate ページのコンポジットを定義、このタグの外側の内容を無視しない
    ui:define テンプレートにより挿入される内容を定義する
    ui:fragment コンポーネントツリーに追加されるコンポーネントを定義。このタグの外側の内容を無視しない
    ui:include 複数のページ向けに、内容をカプセル化し再利用する
    ui:insert テンプレートに対して、内容をインサートする
    ui:param インクルードされた内容に対して、パラメータを渡す
    ui:repeat ループ処理
    ui:remove 内容をページから除く
  • テンプレートファイル
    • ui:insert で内容の挿入位置を定義
  • クライアントページファイル
    • ui:composition で利用するテンプレートファイルを指定
    • ui:define で挿入する内容を定義

Composite Components

  • コンポーネントとして動作する特殊なテンプレート
  • タグの集合と既存のコンポーネントから構成される
    • 再利用可能で、カスタマイズされ定義された機能を持つ
    • バリデータ、コンバータ、リスナーをつけられる
  • よくつかわれるタグ
    composite:interface コンポジットコンポーネントのインターフェース宣言
    composite:implementation コンポジットコンポーネントの実装定義
    composite:attribute コンポジットコンポーネントのインスタンスに渡される属性を宣言
    composite:insertChildren コンポーネントやテンプレートテキストをコンポジットコンポーネントの子として認識。挿入箇所はcomposite:implementationでのcomposite:insertChildrenの位置
    composite:valueHolder ValueHolderであることを宣言。composite:interfaceにネストする。
    composite:editableValueHolder EditableValueHolderであることを宣言。composite:interfaceにネストする。
    composite:actionSource ActionSourceであることを宣言。composite:interfaceにネストする。
  • コンポジットコンポーネントのページ
    • ページファイル内でコンポジットコンポーネントはccで参照
      • #{cc.attrs.attribute-name} で属性値を参照
  • コンポジットコンポーネントを使用するページ
    • 名前空間の宣言でコンポジットコンポーネントへを参照

Resources

  • リソースは、レンダリング時に必要にある成果物のこと
    • イメージ、スクリプト、コンポーネントライブラリ
  • リソースの標準的な置き場所
    • Webアプリケーションのルート配下にパッケージされたもの
      • root:resources/resource-identier
    • Webアプリケーションのクラスパス配下にパッケージされたもの
      • META-INF/resources/resource-identier
  • JSFは実行時にリソースをルート配下⇒クラスパス配下の順で探す
  • リソース識別子はユニークでフォーマットが決まっている
    • [locale-prex/][library-name/][library-version/]resource-name[/resource-version]
  • リソースはライブラリの位置となるため、別のコンポーネントやテンプレートにアクセスできる

タグ:

+ タグ編集
  • タグ:
最終更新:2012年08月05日 12:06
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。