Orca†
Orcaはサーブレットの薄いラッパーとして位置づける簡易的なWebアプリケーションフレームワークです。Orcaは主に次のことを目標にしています。
- 1ページにつき1クラス+1JSPを開発する
- パラメータやセッションの取り扱いを楽にする
- ブックマーカブル/or NOTなページを区別する
Orca開発の背景は新人研修におけるシステム開発演習です。本来あるべきクラスの設計をさせるということと、リクエストやパラメータなどの取り扱いの面で負担をかけないようにすることが大きな目的なので、逆にそれ以外のことをほとんど何もしません。
1ページにつき1クラス+1JSPを開発する†
HTMLのUIモックを起点に開発を進めるページ駆動開発を念頭に置いています。ひとつのページにつきひとつのクラスとひとつのJSPを必要とするようになっています。要するにたとえば「入力画面の入力値チェックは入力画面クラスのメソッドがする」し「リダイレクト画面なんかない」ということです。
パラメータやセッションの取り扱いを楽にする†
パラメータや表示項目はページのインスタンスフィールドとして扱います。たとえば所定のアノテーション「@Parameter」をつけたフィールドはパラメータ項目として扱われ、フィールド名で紐づくパラメータの値がセットされた状態でリクエスト応答メソッドがコールされるようになっています。
ブックマーカブル/or NOTなページを区別する†
ページ遷移の方法としてOrcaでは3つの方法があります。ページ名を指定する方法、ページクラスを指定する方法とページインスタンスを指定する方法です。たとえば××確認ページはパラメータによって再現されるべきページではない(ブックマーカブルでない)ページなのでインスタンスを指定してページ遷移します。
メニュー†
作ってみてなんですが...†
プッシュ型ならTeedaが、プル型ならWicketがあるよというのが僕の見たところです。それでもあえてOrcaを開発したのはあまりたくさんのことをしないフレームワークが新人研修において必要だったことと、単に僕自身の勉強のためです。このためにEJBにも触ってみましたがリフレクションが不自由になってしまうのと、JBossが重たすぎるのとで結局ほとんどを自前で書いてみることにしました。開発期間が短かったこともありいろいろ粗末ですが誰かにとって何かの参考になればと思います。むしろその程度の意味の公開です。個人的にはWicket推しです。