Extension - 概念 - ページモデル

Teeda Extensionは,ページモデルに基づくプレゼンテーションフレームワークです.

ページを構成するのは,静的なテンプレートとなるHTMLと, 動的な情報を持つページクラスです. テンプレートHTMLとページクラスは1対1に対応します.

ページモデル

Teeda Extensionは,ビューにJSPではなくHTML (正確にはXHTML) を使用します.

テンプレートHTMLは, ブラウザに向けてレンダリングされるHTMLのひな形で, 主にid属性を使用して実行時に置き換える部分を示します.

テンプレートHTMLの例
name dummy ]]>

上のテンプレートHTMLの例では, <span> 要素に "name" というidが付けられています.

ページクラスはテンプレートHTMLに対応する情報を保持するクラスです.

ページクラスはPOJO(Plain Old Java Object)であり, 特定のクラスを継承したり,インタフェースを実装したりする必要はありません.

ページクラスは動的な情報をプロパティに保持します. getter/setterメソッドを使うJavaBeans流のプロパティだけでなく, publicフィールドもプロパティとして利用可能です.

ページクラスの例

上のページクラスの例では, name というプロパティが定義されています.

実行時, テンプレートHTMLの動的な部分は対応するページクラスのプロパティで置き換えられて, ブラウザに向けてレンダリングされます.

レンダリング

上のテンプレートHTMLの例にページクラスの例が適用されると,レンダリングされるHTMLは次のようになります.

name ABC ]]>

テンプレートHTMLのid属性とページクラスのプロパティは規約によって結びつけられるため, 明示的に指定をする必要はありません.

テンプレートHTMLは <form> を持つことが出来ます. TeedaExtensionでは, <form> をサブミットした場合の宛先 (action) は, 常に表示されているそのページ自身となります.

ポストバック

このように, <form> がサブミットされてページが呼び戻されることを「 ポストバック 」と呼びます.

注意点

Teeda Extensionでは,HTTPプロトコルのPOSTメソッドはポストバックでのみ使用します. また,ポストバックは常にPOSTメソッドを使用します.

同じディレクトリ (パッケージ) のページは一つの「サブアプリケーション」を構成します.

入力画面・確認画面・完了画面のように, 一連のインタラクションを構成する複数のページを同じサブアプリケーションに含めることにより, 状態の引継ぎが容易になります. 詳細は「 状態とスコープ 」を参照してください.

Teeda Extensionは, Seasar2 のSMART deployに準拠しています.

テンプレートHTML及びページクラスをSMART deployの規約に従って配置することで, 面倒な設定が不要となっています.

テンプレートHTMLは, ビュールート ディレクトリの下に, サブアプリケーション単位のサブディレクトリを作成して配置します. デフォルトの ビュールート ディレクトリは /view です.

テンプレートHTMLは先頭を英小文字とします. デフォルトの拡張子は .html です.

以下はテンプレートHTMLのパスの例です.

このページにアクセスするURLは次のようになります.

注意点

HTMLファイル名にアンダースコア ( '_' ) を含めることはできません.

ページクラスは, <ルートパッケージ>.<サブアプリケーションルートパッケージ>の下に, サブアプリケーション単位のサブパッケージを作成して配置します. デフォルトの <サブアプリケーションルートパッケージ>は web です.

ページクラスの名前は,テンプレートHTMLファイルの名前の先頭を大文字にし, 拡張子を取り除いて接尾辞を付加したものにします. デフォルトの接尾辞は Page です.

以下は, /view/hello/hello.html に対応するページクラスの例です.

この例では, examples.teeda がルートパッケージです.

注意点

ページクラス名にアンダースコア ( '_' ) を含めることはできません.

ページを表す名前は, ビュールート ディレクトリを基点として, サブアプリケーション単位のサブディレクトリとページクラスの名前をアンダースコア '_' でつなげたものです. ただし,サブディレクトリおよびページクラスはJavaBeansにおけるプロパティの規約に従い, 先頭を小文字にします (先頭の文字と2文字目がともに大文字の場合はそのまま).

以下は, /view/hello/hello.html に対応するページ名の例です.