SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

OSSフレームワーク「dataforms.jar」でサンプルプログラムを構築する(1)

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本記事ではMVCそれぞれの機能を1つのjarファイルにまとめた、中小規模Webアプリ開発向けのOSSフレームワーク「dataforms.jar」を使い、掲示板のサンプルアプリケーションを構築します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 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」に作成されるようになります。

WebContent/META-INF/context.xmlの修正箇所
<?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のパスワードを登録します。

developerの登録
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」に配置されます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
テーブルの作成(1)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

高柳 正彦(タカヤナギ マサヒコ)

経験年数30年を超えた、システムエンジニアです。一応管理職のはずですが、未だにコードを書いています。この仕事を長々とやっていると、それなりにノウハウがたまってきます。そのノウハウをまとめたものができないかと思い、独自のフレームワークを作り始めました。そのフレームワークもそれなりに使えるようになってき...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10018 2017/05/15 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング