BT

Spring Web FlowがJSFナビゲーションと状態管理の機能を強化

| 作者: Scott Delap フォローする 0 人のフォロワー , 翻訳者 松本 清一 フォローする 0 人のフォロワー 投稿日 2007年9月2日. 推定読書時間: 3 分 |
Java Server Facesでのナビゲーションのサポートは、長い間不満の種であった。Ignacio Coloma氏は、去年の秋、自身のフラストレーションを次のように書いている。 
(中略)初めはシンプルでした。コンポーネント、レンダラ、バリデータ、コンバータモデルは、作って実行するのに単純で簡単なものです。バリデーションモデルは、まるで魔法のように作用し、JSPページが最小限で済むので、すぐにアプリケーションのスケルトンを動作させることができます。しかし、そこからがリンクページ地獄の始まりなのです。(中略)

Webアプリケーション開発者であるMatt Raible氏も、次のようにコメントしている。

(中略)もしJSFを使うなら、Facelets、Shale、Seam等を強くお勧めします。FaceletsかShaleには、問題があります。それは、それらのプロジェクトの活動が、あまり見られないということです。Shaleの方は、まだ開発者がいるので、めったに使用することがないものの、質問に対する回答は得られるでしょう。しかしながら、Faceletsの方は、"開発者離れ"に悩まされているように思われます。

結論として、JSFは、"標準"なのでそのまま使用してはいけません。もっと活発に開発していて、Webに対しての設計が行われている他のフレームワークを使用すべきです。コンポーネントベースのフレームワークで言えば、TapestryとWicketがあります。次に有名なものとして、RIFEとClickがあります。まだ、JSFを使用したいのなら、Seamを使用するべきでしょう。しかし、あくまで標準なので、そのままで使用しないで下さい。(中略)

各企業や団体は、JSFの修正や機能強化に積極的に取り組んでおり、JBoss SeamはJSFをベースで、Spring Web FlowはJSFをサポートしている。最近、Interface21のKeith Donald氏が、ナビゲーションロジックの実装やアプリケーションの状態を管理するためのよりよいモデルを作るために、Spring Web FlowとJSFをどのように統合させるかということに関して、次のように書いている。

    JSFの拡張として、Spring Web Flowは、ナビゲーションルールとユーザインタラクション(別名、カンバセーション)に関する状態管理を行っています。JSFの開発者は、Spring Web Flowによって機能強化されたナビゲーションモデルの恩恵を得られます。Web Flowの要約は、次のとおりです。
    • 動的なナビゲーションルールの変更が、サーバを再起動することなく、都度変更することが可能
    • フォワード、バックワード、リフレッシュ、リダイレクト、リカーシブといったナビゲーションを、Spring Web Flowで定義された言語により作成可能
    • フロー定義という考え方に基づき、ナビゲーションロジックのモジュール化、カプセル化が可能

    状態管理に関して、Web Flowでは、sessionやapplicationといったJSFの標準的なリクエストであるに加え、conversation、flash、flowといったスコープを追加しています。

Donald氏の記事に対して、Matt Raibleは、次のように言っている

(中略)Interface21やJBossが、JSFに関する問題を数多く解決しているということに関し、私は、興味深いことだと思います。JSFをサポートすることで収入が得られるか?という問いに対して、実際に彼らが何を行っているかというと、自身が持っているJSFの問題を克服するためのソリューションを、コミュニティに対して無料でコントリビュートしているのです。冷静にみれば、両者の団体が、次バージョンのJSFで問題を解決しようとしているという現実があります。私が思うに、これは、全ての人にとってメリットのあることだと思います。
(原文は2007年4月25日にリリースされた記事です)

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT