Home 


 WeberCreator(Weber4.0)開発規約



1) はじめに

WeberCreator(Weber4.0) は Web アプリケーションを開発する際に共通して記述されるで あろうコードやファイルを一般的な構成法で生成することで Weber アプリケーションの構築を効率的にしています。

そのため、WeberCreator(Weber4.0)では難しい設定をする必要がない代わりに、 いくつか規約が設けられており、その規約に従いながら開発を行わなくてはなりません。

ここでは、WeberCreator(Weber4.0)でWeberアプリケーションを構築するために必要な規約を ご紹介します。


2) リクエストとアクションマッピングについて

(1) モジュールの概念

モジュールは、1パッケージ内に1つのBeanクラスと複数のアクションクラス で構成されたものを指します。
これはWeberCreatorが生成する1テーブル分のソースに相当します。

(2) パッケージの構成

モジュール単位で以下のパッケージを作成します。

ルートパッケージ.モジュール名

ルートパッケージの設定は、WeberCreatorの設定ファイル(dbmaptool-config-hsql.xml もしくはdbmaptool-config-mysql.xml)の"pkgName"要素で指定します。
Weberアプリケーション本体に修正を加える場合は、srcフォルダ配下に 生成されるWeberアプリケーション定義ファイル(di-config.xml)の "pkgName"要素で指定します。

WeberCreatorはテーブル名を小文字に変換した名称をモジュール名としています。
(例: テーブル名 MAIL_ADDRESS -> mail_address)

(3) リクエストとフォームクラス, アクションクラスのマッピング

リクエストURIは、以下の形式で作成します。

Webアプリケーションのパス/モジュール名/アクション名.wb(全て小文字)

リクエストURIに対応するフォームクラス(リクエストパラメータを保持するクラス) 名は以下のようになります。

モジュール名.java

モジュール名から"_(アンダースコア)"を除去し、アンダースコアの次の文字と 頭文字を大文字に置き換えたものがクラス名になります。
(例:モジュール名 mail_address -> フォームクラス名 MailAddress )

リクエストURIに対応するアクションクラス名は以下のようになります。

モジュール名+アクション名+Action.java

アクションクラスのアクション名はモジュール名にアクション名(頭文字大文字)を 加えたものになります。
(例:リクエストURI /web-app/・・・/mail_address/get.wb -> アクション名 MailAddressGetAction )

又、WeberCreatorは、1つのモジュールにつき、以下のアクションクラスを生成します。

アクション名 リクエストURI 対応するアクションクラス
登録/更新処理 Webアプリケーションのパス/モジュール名/regist.wb モジュール名 + RegistAction.java
削除処理 Webアプリケーションのパス/モジュール名/delete.wb モジュール名 + DeleteAction.java
検索処理 Webアプリケーションのパス/モジュール名/search.wb モジュール名 + SearchAction.java


アクションクラスのdoExecuteメソッドの戻り値が次の画面の遷移先になります

return "画面のビューID";  //モジュール名_画面のビューID.htmlに遷移します

別モジュールの画面に遷移したい場合は、アクションクラスのdoExecuteメソッドの 戻り値を以下のように指定してください。

return "別モジュール名/画面のビューID";  //別モジュール名/モジュール名_画面のビューID.htmlに遷移します



リクエストとアクションクラス、フォームクラスのマッピング例を以下に記します。



3) テーブル・クラスマッピング表

WeberCretorでWeberアプリケーションのテンプレートを生成する際、 テーブルの各フィールドとJavaクラスの型は以下のようにマッピングされます。

(1) HSQL

フィールドタイプ Javaタイプ 登録(更新)画面(HTML)に出力されるコンポーネント 備考
INTEGER int <input type="text" ... />
VARCHAR, VARCHAR2, CHAR (Size 255以下) String <input type="text" ... />
VARCHAR, VARCHAR2, CHAR (Size 256以上) String <textarea ... >...</textarea>
BIGINT long <input type="text" ... />
BIT boolean <input type="checkbox" ... />
TINYINT byte <input type="text" ... />
SMALLINT short <input type="text" ... />
REAL, DOUBLE double <input type="text" ... />
FLOAT float <input type="text" ... />
VARBINARY、LONGBINARY、BINARY byte[] <input type="text" ... /> 現時点では未対応
DATE、DATETIME、TIMESTAMP Date <input type="text" ... /> yyyyMMdd、yyyy-MM-dd、yyyy/MM/dd、 yyMMdd、yy-MM-dd、yy/MM/dd、yyMMdd といった入力が可能
表示はyyyy/MM/dd形式(デフォルト)



(2) MySQL

フィールドタイプ Javaタイプ 登録(更新)画面(HTML)に出力されるコンポーネント 備考
INT, INT8, INTEGER, MEDIUMINT int <input type="text" ... />
INT, INT8, INTEGER, MEDIUMINT int <input type="text" ... />
SMALLINT short <input type="text" ... />
BIGINT long <input type="text" ... />
VARCHAR, CHAR (Size 255以下) String <input type="text" ... />
VARCHAR, CHAR (Size 256以上) String <textarea ... >...</textarea>
TEXT, TINYTEXT, MEDIUMTEXT, LONGTEXT String <textarea ... >...</textarea>
BIT boolean <input type="checkbox" ... />
TINYINT byte <input type="text" ... />
SMALLINT short <input type="text" ... />
DOUBLE double <input type="text" ... />
FLOAT float <input type="text" ... />
VARBINARY、LONGBINARY、BINARY byte[] <input type="text" ... /> 現時点では未対応
DATE、DATETIME、TIMESTAMP Date <input type="text" ... /> yyyyMMdd、yyyy-MM-dd、yyyy/MM/dd、 yyMMdd、yy-MM-dd、yy/MM/dd、yyMMdd といった入力が可能
表示はyyyy/MM/dd形式(デフォルト)

※ UNSIGNED、AUTO_INCREMENTは現状未対応です



4) 固定のフィールド

WeberCreatorを使って、テーブル設計書からWeberアプリケーションの テンプレートを生成する際、以下のフィールド名を指定すると特殊な 意味合いを持ちます。

フィールド名 フィールドタイプ 仕様
ID 数値型 PRIMARY KEY指定することにより、自動採番機能が有効になります。
又、HTMLではhiddenパラメータとして生成されます。
NAME 文字列型 外部参照テーブルにこのフィールドが存在する場合、検索画面の検索キーとして 自動的にマッピングされます
LOCK_VERSION 数値型 更新処理時に楽観的ロックを行います。
更新処理時、他者ユーザが既に更新処理を完了している場合は、 org.itscool.commons.dao.LockVersionExceptionがスローされます
このフィールドはHTMLには出力されません。
DELETE_FG BIT型 このテーブルに対して論理削除を行います
このフィールドはHTMLには出力されません。
DELETE_DT DATETIME型/TIMESTUMP型 DELETE_FGと併用すると、論理削除時の日付がセットされます
このフィールドはHTMLには出力されません。
UPDATE_DT DATETIME型/TIMESTUMP型 最終更新日付がセットされます
このフィールドはHTMLには出力されません。


Home