はじめに
dataforms.jarには検索条件を入力するためのフォーム(QueryForm)、検索結果を表示するためのフォーム(QueryResultForm)、選択したレコードを編集するためのフォーム(EditForm)が用意されています。この3種類のフォームを全てページに配置するだけで、それぞれのフォームが連携して動作し、テーブルの内容を検索し選択したレコードを編集するようなページができあがります。このことはdataforms.jar中のドキュメントの「3.ページの作成」、「4.ページのカスタマイズ」に書いてあります。
開発ツールでは単純に1種類のテーブルを取り扱うページを生成することができます。しかし実際の開発では複数のテーブルのデータを取り扱うページも必要となります。このようなページの場合、開発ツールで主となるテーブルを取り扱うページを作成し、それに手を加えていくことになります。このような手順で作成したのが、dataforms.jarサンプルプログラム(dfbbs)の記事管理ページです。dfbbsの記事は記事テーブルとそれに対応する添付ファイルテーブルの、2種類のテーブルで構成されています。この連載では、記事管理ページの構築手順を説明していく予定です。
対象読者
この記事を読むのに必要な知識は以下の通りです。
- Java
- JavaScript
- jQuery、jQuery UI
- HTML、CSS
- SQL
必要な環境
dataforms.jarを使用した開発では、以下のものを使用しています。
- JDK1.8
- Eclipse 4.5以上
- Tomcat 7以上
開発環境の構築
ドキュメント「2.開発環境構築」の手順に従って、Eclipseのプロジェクトを作成します。まずドキュメント中の「2.1.Eclipseを用意する」と「2.2.データベースを用意する」はそのまま行ってください。次に「2.3.プロジェクトの作成」を参考にしてdfblank_xxx.warをインポートします。この時、作成するプロジェクト名はdfbbs2とします。
プロジェクトができたらデータベースの接続設定を変更します。インポートしたプロジェクトでは「WebContent/META-INF/context.xml」にデータベースの接続設定が記述されています。この段階で接続先のURLは「jdbc:derby:/javadb/dfdb;create=true」となっているので、「dfdb」を「dfbbs2」に書き換えます。以下の修正でデータベースファイルは「/javadb/dfbbs2」に作成されるようになります。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Context> <Context> <Resource auth="Container" driverClassName="org.apache.derby.jdbc.EmbeddedDriver" name="jdbc/dfdb" type="javax.sql.DataSource" url="jdbc:derby:/javadb/dfbbs2;create=true" username="" password="" /> </Context>
データベースの接続設定の記述場所
「WebContent/META-INF/context.xml」にデータベースの接続設定を記述した場合、warファイルにその設定内容が含まれます。「dfblank_xxx.war」では、インポートしただけでテータベースの接続設定が完了している状態にするため、この方式を採用しています。簡易Webアプリケーションサーバー(runwar)で動作させる場合はこのまま進めますが、Tomcatが動作する実行用のサーバーが用意されている場合は、Eclipseのプロジェクトエクスプローラーの「Servers/ローカル・ホスト の Tomcat8 (Java8)/context.xml」に、この設定を移動します。実行用のサーバーでは「$TOMCAT_HOME/conf/context.xml」にデータベースの接続設定を記述します。この場合JNDIデータソースの名称が「jdbc/dfdb」であれば、接続先がPostgreSQLやMySQLでも問題ありません。
さらに開発ツールのソース出力先の設定を行います。「WebContent/WEB-INF/web.xml」のjava-source-pathとweb-source-pathを環境に合わせて適切に設定してください。私のEclipseワークスペースのパスは「/eclipse/pleiades-e4.6/workspace/」となっているので、「web.xml」の該当部分は以下のようになります。それぞれの環境に合わせて修正してください。
<!-- 開発ツールのjavaソース出力フォルダを指定します。--> <context-param> <param-name>java-source-path</param-name> <param-value>/eclipse/pleiades-e4.6/workspace/dfbbs2/src</param-value> </context-param> <!-- 開発ツールのhtml、javascript等のWebリソース出力フォルダを指定します。--> <context-param> <param-name>web-source-path</param-name> <param-value>/eclipse/pleiades-e4.6/workspace/dfbbs2/WebContent</param-value> </context-param>
ここまでの作業が終了したら、プロジェクトdfbbs2をTomcatに追加し、プロジェクトをビルドした後にTomcatを起動します。Tomcatが起動したら「http://localhost:8080/dfbbs2」にアクセスし、developerのパスワードを登録します。
この操作で「/javadb/dfbbs2」にデータベースが作成され、dataforms.jarが持つテーブル群が作成されます。データベースの作成が終了すると、ログイン画面が表示されます。ユーザーIDに「developer」、パスワードは登録したパスワードを入力しログインしてください。
機能の登録
[開発ツール]メニューの[機能管理]を表示し、以下のように「/bbs」というパスに「掲示板」という機能を作成します。
この操作で「/bbs」というパスがdataforms.jarのライブラリ内で定義された「func_info」テーブルに登録され、「WebContent/bbs/Function.properties」に機能の名称「掲示板」という文字列が登録されます。「Function.properties」の内容をTomcatに認識させるため、プロジェクトをビルドし、Tomcatを再起動してください。この機能の中のJavaのクラスはパッケージbbs.*以下に配置されます。またHTMLやJavascriptファイルは「WebContent/bbs」に配置されます。