NetUI ページ フローの概要

Workshop は、Web アプリケーション用の Apache Beehive フレームワークである NetUI のツールをサポートしています。このトピックでは、NetUI の基本概念を説明します。

NetUI を使用する理由

NetUI を使用すると、プレゼンテーション、ビジネス ロジック実装、ナビゲーション コントロールを個別のプロセスに分割できるので、Web アプリケーション開発でよくある間違いを防ぐことができます。多くの Web アプリケーションによる JSP (または ASP または CFM などの動的 Web 言語) を使用した Web 開発では、プレゼンテーションとビジネス ロジックのプロセスが web ページ内に混在しています。

アプリケーションが複雑になり、定期的な変更の対象になると、この方法は、以下の要因によって保守にコストや時間がかかるものになります。

NetUI を使用すると、ユーザ インタフェース コードをナビゲーション コントロールや他のビジネス ロジックから分離できます。ユーザ インタフェース コードは、JSP ファイル内の然るべき場所に配置できます。web アプリケーションのナビゲーション コントロール、ビジネス ロジック、および中核機能は、Web アプリケーションの中枢部を形成する Java コントローラ クラスに実装できます。

JSP ファイルとコントローラ クラスの間の基本的な作業分担は次のようになります。Java コントローラ クラスが Web アプリケーションの機能を実装し、JSP ファイルがその機能をユーザに与えます。

NetUI Web アプリケーションのプレゼンテーションおよび処理の側面は、高度にモジュール化されているため、片方に影響を与えることなくもう片方を簡単に変更できます。たとえば、JSP ページを更新するだけで、基底のコントローラ クラスはほとんど変更することなく、web アプリケーションのルック アンド フィールを簡単に変更できます。同様に、JSP ページを変更せずにコントローラ クラスを再実装できます。これは、web アプリケーションの中枢機能が、JSP ページ内に分散しているのではなく、コントローラ クラス内にカプセル化されているためです。

プレゼンテーションに関するプロセスとビジネス ロジックに関するプロセスの分離によって、開発チームには大きな利点がもたらされます。たとえば、サイトのナビゲーションを単一の Java クラスで更新できるので、複数の JSP ファイルを検索して各ファイルを更新する手間を省くことができます。また、同様の Web アプリケーション機能を単一の Java クラスにカプセル化することにより、機能的なモジュール構成の Web コンポーネントを作成できます。web アプリケーションを構成するエンティティを組織立てて整理するこの方法によって、変更を実装するために更新しなければならないファイルの数が最少限に抑えられるので、Web アプリケーションの保守と拡張が簡単になり、その際のコストも軽減されます。

NetUI プログラミング モデルのコンポーネント

ここでは、NetUI 実装の基本部分の概要を示します。

JSP ファイル

JSP ファイルは、NetUI web アプリケーションのユーザ インタフェースを形成します。これらのページには Java コード片を埋め込む必要がありません。NetUI の Web アプリケーションでは、JSP ページには JSP タグおよび JSP 暗黙的オブジェクトへの参照が含まれますが、Java コードは含まれません。これによって、アプリケーションの挙動の予測およびテストがより簡単になり、Java コード開発者と JSP 開発者の間の作業分担を厳密に切り分けることができます。

NetUI では、標準 JSP タグ ライブラリの機能を補う JSP タグの特別なライブラリ、<netui> タグ ライブラリが JSP 開発者に与えられます。

<netui> タグ ライブラリには、コントローラ クラス (以下参照) を操作するための専用の JSP タグが含まれています。このライブラリのタグは、「netui」、「netui-databinding」、または「netui-template」というプレフィックスで始まります。これらのタグには HTML タグと同じような機能を果たすものもありますが、それら以外のタグはページ フロー web アプリケーション特有の機能を実行します。タグ ライブラリの最も重要な機能は、コントローラ クラスのデータを参照できる点です。<netui> タグによって、コントローラ クラス内の Java コードを JSP ページから読み書きできます。これにより JSP ページに Java コードを配置する必要がなくなり、データの表示とデータの処理を完全に分離できます。

Java Server Faces (JSF) ファイルも JSP ファイルの代わりとして、または JSP ファイルを補うものとして Web アプリケーションに追加できます。

コントローラ クラス

データ処理コードはコントローラ クラスと呼ばれる Java クラスに格納されます。コントローラ クラスは、Web アプリケーションにおける JSP ファイルを介したユーザ ナビゲーションの処理、ユーザ データの送信処理、Web サービスおよびバックエンド データベースなどの外部リソースの呼び出しを担当し、通常は web アプリケーションの中枢機能を実装します。

コントローラ クラスの構文に関する詳細については、「Page Flow Controllers」を参照してください。

アクション

アクションは、特別に設計された一連のメタデータ アノテーション (単に「アノテーション」とも呼ばれる) によって修飾されたコントローラ クラス内のメソッドです。アノテーションは、Java 5 の新しい機能であり、クラスまたはメソッドのプロパティ セッターです。NetUI では独自のアノテーション セットを定義しており、これによって、JSP ページとの交信、Web アプリケーションでのナビゲーションの制御、およびアプリケーションの状態管理をコントローラ クラスにおいて簡単に行うことができます。

アクションの詳細については、「Fleshing out the Controller」および「Actions in NetUI」を参照してください。

ページ フロー

JSP ファイルおよびコントローラ クラスは、ページ フローと呼ばれるモジュール単位に配置されます。1 つのページ フローは、単一のコントローラ クラスと任意の数の JSP ファイルから構成されます。一般的に、1 つのページ フローが Web アプリケーション内の一定の機能単位を反映します。たとえば、企業の Web アプリケーションには、その企業の商品カタログの参照用、ショッピング カート内の商品の収集用、顧客アカウントの管理用など、さまざまなページ フローが数多く含まれる場合があります。

ページ フロー モジュールの詳細については、「Nested Page Flows」、「Page Flow Inheritance」、および「Shared Flow」を参照してください。

暗黙的オブジェクト

NetUI では、以下に示す 2 種類の暗黙的オブジェクトが提供されます。暗黙的オブジェクトは、アプリケーションでのデータの移動、およびアプリケーションの状態の保存に使用できます。

  1. JSP 暗黙的オブジェクト : セッション、pageContext など、JSP 実装によって提供される JSP オブジェクトの標準セット。
  2. NetUI 暗黙的オブジェクト : これらのオブジェクトは NetUI フレームワークによって提供され、コントローラ クラスなどに含まれるオブジェクトへのアクセスを可能にする。

    利用可能なオブジェクトのリストについては、「Data binding to NetUI Implicit Objects」を参照してください。

フォーム Bean

フォーム Bean は、HTML フォームの Java 表現です。ユーザが HTML フォームを送信すると、送信データはフォーム Bean として取り込まれ、通常はアクションに渡されて以降の処理が行われます。

フォーム Bean の詳細、および NetUI Web アプリケーションにおけるフォーム Bean の役割の詳細については、NetUI ドキュメントの「NetUI Form Control Tags」を参照してください。

検証と例外処理

検証と例外処理は、アノテーションを使用した宣言的プログラミング モデルを使って定義されます。詳細については、「Validation」および「Exception Handling」を参照してください。

関連トピック

NetUI: Getting Started


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。