はじめに
Apache Beehiveのサブプロジェクトの中で、MVC(Model-View-Controller)のViewとControllerを担うのがNetUIです。NetUIは、Strutsの優れた部分を引き継ぎながら、高いレベルの機能拡張と、より効率的で簡単なプログラミングモデルを提供します。本稿では、このNetUIを取り上げ、基本的な開発方法を解説します。
対象読者
J2EEアプリケーションの開発者。またはJ2EEの開発に興味がある読者。Strutsの経験があると望ましい。
環境
本稿では、Apache Beehiveで実装されたサンプルアプリケーションが正しく動作する環境が必要になります。必要なものを表にまとめました。Beehiveに関しては、サンプルアプリケーションに含めているためダウンロードしなくても動作はします。なお、J2SE、Tomcatの基本的な環境設定について知りたい方は、サーバサイド技術の学び舎 - WINGSにある『サーバサイド環境構築設定』を参照してください。注意点として、Apache Beehiveでは、アノテーション(注釈)などの機能を多用しているため、J2SE 5.0以上でなければ正常に動作しません。また、環境変数としてTomcatのCATALINA_HOMEを設定してください。
ライブラリ | バージョン | ダウンロード元 |
J2SE | 5.0 | http://java.sun.com/j2se/1.5.0/download.jsp |
Ant | 1.6.5 | http://ant.apache.org/bindownload.cgi |
Tomcat | 5.5.12 | http://tomcat.apache.org/download-55.cgi |
Beehive | 1.0.1 | http://beehive.apache.org/releases/release-1.0.1.cgi |
NetUIの概要とアーキテクチャ
概要
NetUIは、StrutsをベースとしたWebアプリケーションのフレームワークです。J2SE 5.0で新たな仕様として追加されたアノテーションの機能を主に利用し、より効率的に開発を行えるフレームワークとなっています。また、優れたさまざまな機能を実装しています。次に主な特徴を挙げます。
- これまでStrutsでの
Action
クラス+「struts-config.xml」として別々に管理していたリソースをコントローラークラスに統合することにより、よりメンテナンスしやすい効率的な開発環境を提供します。 - 強力なJSPタグにより、フォーム、コントローラー、ビジネスロジックで作成されたデータを簡単にJSPにバインドすることができます。
- 複数のコントローラーをそれぞれ独立したモジュールとして開発することにより、大規模なアプリケーションを効率的に実行することができます(Nested Page Flows:ネストされたページフローと呼ばれています。本稿では取り上げません)。
アーキテクチャ
NetUIは、ページフローとNetUI-JSPタグの大きく2つに分けられます。ページフローは、定められたアノテーションとメソッドで定義され、Webアプリケーションの動作を制御し、ビジネスロジックを呼び出すJavaのクラスです。このクラスは、コントローラークラスと呼ばれ、javaファイルもしくは、jpfという拡張子で作成されます。NetUI-JSPタグはStrutsのタグをより強力にしたもので、NetUI-JSPタグを利用することで、フォームのデータやビジネスロジックで生成されたデータをJSPにバインドすることができます。下にMVCでのNetUIのイメージをまとめました。
また、コンポーネントの表を次に示します。
名称 | MVC | 概要 |
コントローラークラス | C | 全体の動作を制御するクラス |
フォームBean | M | フォームクラス |
JSP | V | 画面ページ |
ビジネスロジック | M | ビジネスロジックを記述したクラス(Beehiveのコントローラーなどが使用される) |
サンプルアプリケーションの概要
ここからはNetUIで実装したサンプルWebアプリケーションを利用して、NetUIでの実装方法を解説していきます。サンプルアプリケーションとして、ログイン機能をもち、簡単なメモ情報をファイルとして出力する機能をもったアプリケーションを使用します。画面遷移イメージは次のようになります。
次のような機能を実装しています。
- ログイン画面でアカウント名とパスワードを入力。正しいアカウントであれば、メモ入力画面へ遷移、誤ったアカウントであればログイン画面へ戻す。
- メモ入力画面でタイトルと本文を入力。入力内容が適切であれば、確認画面へ遷移。誤った入力内容であればメモ入力画面へ戻す。
- 確認画面から[確定]ボタンを押下すると、完了画面へ遷移。登録完了した旨のメッセージを表示。