!!!Apache Wicket !![Wicketってなに|http://www.wicket-ja.org/about_wicket] *http://www.wicket-ja.org/about_wicket *http://www.ibm.com/developerworks/jp/web/library/wa-aj-wicket/ ::オブジェクト指向 *WicketはJavaのオブジェクト指向言語としての機能を最大限に活用。 *Strutsのような設定ファイルを持たない。唯一の設定ファイルは「web.xml」 *プログラマは自由にページを「継承」したり、機能を「委譲」したりすることがでる ::HTMLをそのまま使う *JSPのようなページ・テンプレートも否定 *HTMLファイルをそのままテンプレートとして使用 *HTMLにもともと存在する属性をWicketが使うこともほぼない *利用するのは、HTMLエディタが無視してくれる、独自の「wicket:id」属性だけ *HTMLファイルをJSPに変換するための余計な労力は発生しない ::コンポーネント指向 *ページをオブジェクトとして扱う。 *ページそのものが複数の「コンポーネント」の組み合わせでできていると考える *「テキストフィールド」や「ラベル」「ラジオボタン」という各要素もコンポーネントの一種 *コンポーネントはただのオブジェクトであって、入力補完をしてくれるフィールドや、日付選択用のボタンのついたフィールドなども「コンポーネント」 *複数のコンポーネントを組み合わせた、例えば「ログインフォーム」「コメントフォーム」などもコンポーネント。複数の画面で再利用可能 *Ajax対応コンポーネントをページに追加するだけで、Ajax化されてウェブページを作ることができる。 ::ステートフル *アプリケーションには状態があるが、HTTPという通信プロトコルには本来「状態」という概念がない。 *サーブレットはこの問題を上辺だけで解決してきた。管理はすべてプログラマまかせ。 *Wicketはページの状態をフレームワークが保持します。入力値やページの変更も「状態」として保持 *Wicketではページの状態をWicketが保持するから、ページに単純に値を保持できます。 *ページを「オブジェクト」として作ることができる *サーブレットはサーブレット内に値を持つこと自体が禁止されていたのと対照的(状態はすべて「セッション」に保持して自分で管理しなければいけなかった)