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は、以下の形式で作成します。
リクエストURIに対応するフォームクラス(リクエストパラメータを保持するクラス) 名は以下のようになります。
モジュール名から"_(アンダースコア)"を除去し、アンダースコアの次の文字と
頭文字を大文字に置き換えたものがクラス名になります。
(例:モジュール名 mail_address -> フォームクラス名 MailAddress )
リクエストURIに対応するアクションクラス名は以下のようになります。
アクションクラスのアクション名はモジュール名にアクション名(頭文字大文字)を
加えたものになります。
(例:リクエスト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メソッドの戻り値が次の画面の遷移先になります
別モジュールの画面に遷移したい場合は、アクションクラスのdoExecuteメソッドの 戻り値を以下のように指定してください。
リクエストとアクションクラス、フォームクラスのマッピング例を以下に記します。

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形式(デフォルト) |
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には出力されません。 |