HikyakuCmsで表示している画面のタイトルや項目名称及びボタンイメージの文言は、"classes"フォルダの直下にある"AppCommonMessages.properties"の内容で表示されています。従って、"AppCommonMessages.properties"の内容を変更することにより表示させる文言を変更することができます。 なお、"AppCommonMessages.properties"には Unicode コード(\ udddd 表記)文字 で登録する必要があるので、日本語等を使用する場合は、"native2ascii"ツール等で変換して設定してください。
同様にシステムエラーメッセージやログ出力メッセージは"DistributeMessage.properties"で、項目チェック等のエラーメッセージは "ItemErrorMessage.properties"で設定されています。これらの内容を変更することによりメッセージの表示文言を変更することができます。
JavaやJSPに固定的に定義されている文言はないので、上記のファイル内容を変更することにより、表示させる文言のへん子は可能となります。
提供しているアプリケーションのスケジュール管理、簡易社内SNSに関しては、上記のような方式を取っていないため、Javaソース、JSP等を修正する必要があります。
画面のデザインは"skins"フォルダ内のCSS(カスケードスタイルシート)とイメージファイルを使用しています。規定値では "skins/default" フォルダーが使用されます。 "skins"フォルダの中にフォルダを作成し、"default"と同じフォルダ構成で各ファイルを用意すれば、トップ画面の右上にある[情報変更]をクリックすると表示される[ユーザー情報の変更]画面において[スタイル]欄で追加したフォルダ選択できるようになり、個人別に表示スタイルを選択できるようになります。
参照されるスタイルシータは右表にあるCSSになります。
Common.css | ベースとなるCSSでbody,tableタグなどのスタイルが指定されています。 |
---|---|
default.css | "input","button"クラス指定時のスタイルが指定されています。 |
leftmenu.css | 左側のシステムメニュ用のスタイルが指定されています。 |
popwin.css | カレンダや選択画面などのダイアログ用のスタイルが指定されています。 |
rectpre.css | 枠線を表示する"rectpre"タグリブ用のスタイルが指定されています。 |
この場合は、JSPを修正する必要があります。JSPは通常のテキストファイルなので、特別なツールがなくても修正は可能です。ただし、"utf-8"で保管する必要があるので、Windowsのメモ帳などの"utf-8"が扱えるエディッタで修正してください。
JSPの修正に当たっては、データの表示などタグリブが使用されていますし、表示の制御等にスクリプトレット(javaソース)が記載されているので、ある程度の知識が必要だと思われます。
JSPは右表のように設定されています。
control/jsp/common | 共通的に使用するJavaScriptファイルやinclude用のJSPやカレンダ、選択画面用のJSPが入っています。 |
---|---|
control/jsp/contents | プラグイン管理、セキュリティ管理処理用のJSPが入っています。 |
plugins/schedule/jsp | スケジュール管理で使用されるJSPが入っています。 |
plugins/sns/jsps | 簡易社内用SNSで使用されるJSPが入っています。 |
提供しているアプリケーションの改修や新規のアプリケーションを作成する場合は、Javaの開発環境が必要となります。JavaもJSPもテキストファイルなので、一般のエディッタとJ2SDK(JavaTM 2 Software Development Kit)があれば開発は可能ですが、開発効率や管理等を考えればEclipsやNetBeansなどのIDE (Integrated Development Environment)を利用するのが一般的だと思われます。
提供システムはJ2SE(Java 2 Standard Edition)6.0で作成されています。Oracleのjavaサイトより "Java SE 6" のSDKをダウンロードして利用してください。 また、JSP2.0の機能を利用しているので、Tomcatも6.0以降のものを使用してください。(データベースの接続にTomcatのコネクションプールを利用しているので、APサーバとしてはTomcatを推奨しています)
通常であれば、配布している "cms_development" の内容を新しいフォルダにすべて展開し、IDEのプロジェクトでそのフォルダを指定すれば(Eclipsであれば "Java プロジェクト"の新規作成で[ロケーション]に展開したフォルダを指定する)開発用の環境はできます。 "cms_development"に開発で必要となるライブラリ、tldファイル、include用のJSP、JavScript及びスタイルシートが入っています。
当システムは管理用に "プラグイン定義","実行制御","固定値管理" の3つのXML形式のテキストファイルを使用します。
"プラグイン定義" - プラグインの名称などの情報を定義する。 ファイル名は "plugininfo.xml" とし、プラグインフォルダの直下に配置する。
プラグインの登録時に読み込まれ、データベースに登録される。以降はデータベースで管理されるため、変更しても反映されません。
"実行制御" - フレームワークにて参照される実行制御用のファイルでファイル名およびファイルの配置場所は"プラグイン定義"の<controlxmlpass>で指定されたものとなる。添付の "h6Cntl.xls" を利用すれば直接XMLを記述する必要がなくExcel上で管理することが可能となります。
"固定値管理" - アプリケーションで利用される各種固定値が管理される。ファイル名およびファイルの配置場所は"実行制御"の<MasterXml>で指定されたものとなる。
クライアントとのやり取りを行う処理に対して、スケルトン形式でのベースとなるクラスの提供とJSPの項目とデータクラスのデータとの定義付けを制御するクラスを提供しています。
StandardListProcess | 一覧表示形式データ作成用ベースクラス |
---|---|
StandardDetail Process |
詳細情報のデータ表示用ベースクラス |
StandardCheck AndUpdate |
データベースの更新用のベースクラス |
NoProcess | 何も処理が必要でない場合(画面遷移のみを行うなど)に利用するクラス |
JspItemsMapping | JSPと詳細用データクラスの項目の関連付けを定義するベースクラス |
NoProcess | 何も処理が必要でない場合(画面遷移のみを行うなど)に利用するクラス |
一般的な表示やデータベースの更新であれば、"Standard______" クラスを継承して作成すれば、画面処理におけるコーディングは非常に少なくなります。
特殊な編集などがなければ、データクラスのインスタンス化と業務処理用メソッドの呼び出しのみの記述で済みます。リクエストデータからのデータクラスへの設定やデータクラス内データのJSP用のメッセージクラスの設定などは元のクラスで行われます。
アプリケーションソースの "ui"パッケージの各クラスを参照していただければ、使用方法等は理解できるのではないかと思います。
何の処理がない場合は、実行クラスとして "NoProcess"クラスを指定することができます。リクエスト情報のみが設定された共通メセージクラスが生成されJSPに渡されることになります。
データベース処理のサポートは大別して、テーブル、ビューへのアクセス機能とのデータ保持用のデータクラスになります。
データ保持用のベースクラス
・"RetrieveKeysBase" - テーブル、ビューで検索に使用する項目名 及び 取得する項目名を定義する
・"DetailItemsBase" - テーブル、ビューの項目名を定義する
・"PreparedItems" - 外部ファイルに定義したSQL文を実行するときに使用する
RetrieveKeysBase | 検索処理で利用するデータクラスのベースクラスで、検索条件及び検索結果で取得されたPrimaryKey値のListを保持します |
---|---|
DetailItemsBase | 1インスタンス(行)に対応したデータクラスのベースクラス |
PreparedItems | 外部定義のSQLを実行し、その結果で取得したデータを保持するクラス |
データアクセス用のクラス
・"DefaultTableAccess" - 通常利用されるアクセス用のベースクラス
・"MultipleTableAccess" - 複数テーブルの更新用のベースクラス
・"PreparedSqlAccess" - 外部ファイルに定義したSQL文を実行するときに使用するベースクラス
DefaultTableAccess | アクセスごとにcommitし、接続を切断します |
---|---|
MultipleTableAccess | commit, rollbackを自分でコントロールする場合に使用する |
PreparedSqlAccess | 外部定義のSQLを実行する場合のベースクラス |
テーブル、ビューで必須となるフィールド
フレームワークのデータベースアクセスを利用するには、右表の5つの項目(属性)が必須となります。
これらの項目は必ず定義してください。なお、データクラスでは定義する必要はありません。
UPD_DATE | varchar (10) | 更新日 排他制御で使用 |
---|---|---|
UPD_TIME | varchar (8) | 更新時間 排他制御で使用 |
UPD_PGM | varchar (256) | 更新プログラム |
UPD_USER | varchar (256) | 更新者 |
DEL_FLG | char (1) | 削除フラグ 論理削除用 |
フレームワークには、開発サポート用に幾つかのユーティティ的なクラスが用意されています。大半は static メソッドとして定義されています。
利用回数が多いと思われるクラスを右表に記載しておきます。メソッドの詳細やその他のクラスに関しては "cms_doc" に含まれている JavaDoc を参照してください。
SecurityCheckUtils | ユーザー情報、グループ情報の取得など |
---|---|
PreparedSqlUtil | "PreparedItems" から "Retrieve KeysInterface"への変換(setKeys), "DetailItemsInterface"への変換(setVals) |
MasterXmlFactory MasterXmlControl |
固定値管理Xmlからのデータの取得を行う |
DateUtil | 当日取得などの各種日付関係の処理 |
MessageUtil | 共通メッセージクラスからのデータの取得 |
NumUtil | 四捨五入などの数値関係の処理 |
TextUtil | 大小文字変換などの文字列関係の処理 |
項目ごとにチェック内容を記述した "XMLencoder"形式のXMLファイルを、画面毎のフォルダ内に置いておく。
"ItemChecks"クラスの "check"メソッドを上記のフォルダ名を引数に指定して実行すると、共通メッセージにエラーの有無と項目ごとのエラーメッセージが設定されます。 全体的なイメージは右図のようになります。
項目ごとのファイルの作成用に "h6item4Xml_jsp.xls" を用意しています。このExcelを使用することにより、直接ファイルを作成することなく、フォルダ単位で項目のチェック内容を管理することができます。
データベースとの接続は、標準ではTomcatのコネクションプールを使用するようになっています。接続先の設定は "context.xml" の"name"属性の値(jdbc/以降の名称)を固定値管理ファイルの<DbConnect>タグ内の<parameter>に設定します。 また、<DbConnect>の指定は <DbConnectCode>タグの値を "DefaultTableAccess", "MultipleTableAccess", "PreparedSqlAccess"の各クラスの "setConnectionParameter"メソッドの引数で指定します。(左図参照)
<DbConnect>/<class>に "DbConnectInterface"を実装したクラスを指定すれば、データベースとの接続時に使用されます。
DIコンテナ(Dependency Injection Container)によるコンポーネント(JavaBeans)の管理にも対応しています。標準で"PicoContainer" の利用が可能になっており、右図の様に設定します。
1.プラグイン定義ファイルの<diclass>で "DiContainer"インターフェースを実装したクラスを指定します。未指定時は"PicoContener"が使用されます。
2.実行制御ファイルの<ExecClass>の "di"属性に"yes"を指定し、Diコンテナ用のキー値を"key"属性に設定します。"key"属性に"class"を指定すると<ExecClass>で指定しているクラスのClassオブジェクトがキーとなります。