InfoQ

News

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

作者 Scott Delap, 翻訳者 松本 清一 投稿日 2007年9月2日 午後9時56分

コミュニティ
Java
トピック
Webフレームワーク
タグ
Spring Web Flow
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日にリリースされた記事です)
ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

特集コンテンツ一覧

トップスポーツチームの監督に教わる秘訣

この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。

事例研究:Dutch Railwaysのプロジェクトにおける分散拠点でのスクラム・プロジェクト

この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。

Agile2008チーム参加レポート - 帰国そして変化

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。

SilverlightとJavaのインターオペラビリティ

マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。

Agile2008 チーム参加レポート - カンファレンス参加編

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。

Agile2008 チーム参加レポート - 動機/準備編

筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。

Javaトラブルシューティングメルマガ総集編 2008/08~09

エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。

モデル駆動アプローチがうまく機能しない(しなくなる)8 つの理由

この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。