コントロール実装クラスは、コントロールパブリックインタフェースに定義された操作を実装するクラスだ。
ファイルは拡張子.jcsと作成するが、実体は通常のJavaクラスとなる。クラスはコントロールパブリックインタフェースを実装した(implements宣言した)クラスとして作成する。また、@org.apache.beehive.controls.api.bean.ControlImplementation とAnotationしておく必要がある。そして、コントロールパブリックインタフェースで定義したメソッドを実装するのだ。
リスト2■HelloImpl.jcs |
package hellocontrol; import org.apache.beehive.controls.api.bean.*; @ControlImplementation public class HelloImpl implements Hello { public String hello() { return "Hello, World!"; } } |
Beehiveから提供されるコントロールコンパイラを使って、コントロールBeanクラスを生成する。
コントロールコンパイラはAntタスクとして提供されているので、Antの使用が必須だ。コントロールコンパイラを実行すると、コントロールパブリックインタフェース + Bean.java という名前のソースコードが生成される。このコントロールBeanクラスは、通常のJavaBeansと同様にインスタンス化し、メソッドを呼び出して使うことができる。次の例はJSPでの使用例だ。
リスト3■index.jsp |
<%@ page language="java" contentType="text/html;charset=UTF-8"%> <%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0" prefix="netui-data"%> <%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%> <%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0" prefix="netui-template"%> <netui:html> <head> <title>Web Application Page</title> <netui:base/> </head> <netui:body> <p> <jsp:useBean class="hellocontrol.HelloBean" id="helloBean" scope="session"/> <%= helloBean.hello() %> </p> </netui:body> </netui:html> |
Apache Beehiveプロジェクトからもサンプルアプリケーションが提供されている。
Beehive Controls Tutorialページで手順が解説されているが、ドキュメント記載およびサンプルアプリケーションのコードに不備があるため、Webサイトで紹介されている手順では動作しないので以下に修正した手順を紹介する。
1. JDK1.5(J2SE5.0)のダウンロードとインストール
ここからJDKをダウンロードし、インストールする。C:\jdk1.5.0 にインストールするものとして手順を紹介する。
2. SVN (Subversion Source Control) のダウンロードとインストール
SVNをダウンロードしてインストールする。Windowsの場合はインストーラ付きの拡張子.exeのものを使うのが簡単でよい。
3. Beehive のダウンロードとインストール
ApacheのサイトからSVNを使って最新版をダウンロードする。コマンドプロンプトを表示し、ダウンロードするディレクトリ(任意。この例では、C:/beehive-src)に移動する。そして、コマンドプロンプトから次のように入力する。
svn checkout http://svn.apache.org/repos/asf/incubator/beehive/trunk/ |
4. Antのインストール
apache-ant-1.6.2-bin.zipをダウンロードし、任意のディレクトリ(ここでの例では、C:\apache-ant-1.6.2)に展開する。
5. 準備
コマンドプロンプトから、次のように入力する。
set JAVA_HOME=C:\jdk1.5.0 (←JDKインストールディレクトリを指定) set BEEHIVE_HOME=C:\beehive-src\trunk (←Beehiveダウンロードディレクトリ\trunk を指定) cd C:\beehive-src\trunk (←Beehiveダウンロードディレクトリ\trunk に移動) beehiveEnv.cmd set ANT_HOME=C:\apache-ant-1.6.2 (←Antインストールディレクトリを指定) set Path=%ANT_HOME%\bin;%Path% ant bootstrap |
以後、動作確認までこのプロンプト上で作業することをおすすめする。いったんコマンドプロンプト表示を終了してしまった場合は、もういちどこの手順を行う必要がある。
6. Beehive のコンパイル
コマンドプロンプトから、次のように入力する
ant deploy |
7. ソースディレクトリの作成
C:/beehive-src/trunk/installed/jakarta-tomcat-5.0.25/webapps/ディレクトリに、control_tutorialディレクトリを作成する。
続けて、C:/beehive-src/trunk/installed/jakarta-tomcat-5.0.25/webapps/control_tutorial/ディレクトリに、hellocontrolディレクトリを作成する。
8. 必要なリソースのコピー
コマンドプロンプトから、次のように入力すると、必要なライブラリや設定ファイルのコピーが行われる。
ant -f C:\beehive-src\trunk\netui\ant\webappTemplate.xml -Dwebapp.dist.dir=C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial |
9. コントロールパブリックインタフェース、コントロール実装クラスの作成
C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial\WEB-INF\src\ディレクトリにhellocontrolディレクトリを作成し、このディレクトリに前述したコントロールパブリックインタフェース(リスト1)、コントロール実装クラス(リスト2)を作成する。
10.コントロールコンパイラの実行
コマンドプロンプトから、次のように入力する。
終了すると、C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial\WEB-INF\.tmpbeansrc\hellocontrol\ディレクトリに、コントロールBeanクラス(HelloBean.java)が生成され、コンパイルまで実行される。
ant -f C:\beehive-src\trunk\test\ant\buildWebapp.xml build.webapp -Dwebapp.dir=C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial
11. JSPページの準備
C:\beehive-src\trunk\installed\jakarta-tomcat-5.0.25\webapps\control_tutorial\ ディレクトリにBeanを呼び出すJSPページを用意する(リスト3)。
12. 実行
Tomcatを起動し、http://localhost:8080/control_tutorial/index.jsp にアクセスする。画面上に"Hello, World!"と表示される。
|
「NetUI」は、コントロールと並んで、Beehiveプロジェクトの中核をなすプロジェクトだ。はじめはWebLogic Workshop8.1組み込みのWebアプリケーションフレームワーク"Java ページフロー"として開発された。
NetUIはWebアプリケーションの画面遷移(ページフロー)を簡単に構築するための、Strutsベースのフレームワークである。Strutsと比較した場合、Struts設定ファイルの記述が不要であることが有利な点といえるだろう。
また、NetUIは、Strutsを拡張して作られており、Strutsの持つ機能は全く失われていない。つまり、従来のStrutsの機能をそのまま利用することも可能なのだ。NetUIが直接サポートしていないStrutsの機能を利用することもできるし、Strutsで動作していたアプリケーションをNetUIに移行し、以前のアプリケーションの機能はそのままにNetUIで新しい機能を追加することも可能だ。
Copyright © ITmedia, Inc. All Rights Reserved.