Teeda Extensionは,ページモデルに基づくプレゼンテーションフレームワークです.
ページを構成するのは,静的なテンプレートとなるHTMLと, 動的な情報を持つページクラスです. テンプレートHTMLとページクラスは1対1に対応します.
Teeda Extensionは,ビューにJSPではなくHTML (正確にはXHTML) を使用します.
テンプレートHTMLは, ブラウザに向けてレンダリングされるHTMLのひな形で, 主にid属性を使用して実行時に置き換える部分を示します.
上のテンプレートHTMLの例では,
<span>
要素に
"name"
というidが付けられています.
ページクラスはテンプレートHTMLに対応する情報を保持するクラスです.
ページクラスはPOJO(Plain Old Java Object)であり, 特定のクラスを継承したり,インタフェースを実装したりする必要はありません.
ページクラスは動的な情報をプロパティに保持します. getter/setterメソッドを使うJavaBeans流のプロパティだけでなく, publicフィールドもプロパティとして利用可能です.
上のページクラスの例では,
name
というプロパティが定義されています.
実行時, テンプレートHTMLの動的な部分は対応するページクラスのプロパティで置き換えられて, ブラウザに向けてレンダリングされます.
上のテンプレートHTMLの例にページクラスの例が適用されると,レンダリングされるHTMLは次のようになります.
テンプレート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
に対応するページ名の例です.