LaBee Frameworkインストール・設定方法

LaBee FrameworkはJavaによるWebシステム開発のデファクトスタンダードを目指す、ゼロから作られた国産のJavaフレームワークです。 海外製フレームワーク特有の難解さや情報不足による工数や人員の増大を解消しJavaのWeb開発を効率化する為に作られました。 LGPLライセンスでソースコードをオープンソース公開しており、個人・企業問わずどなたでも無償で利用出来ます
https://www.bee-wkspace.com/
![press.jpg](https://qiita-image-store.s3.amazonaws.com/0/137533/9ec50bce-b5dd-3ed3-f1f3-c6f5e9a4d106.jpeg)

#インストール

- 前提としてTomcatサーバがインストール済みでJava動的Webプロジェクトを作成している事。
- LaBeeFrameworkのライブラリ本体「LaBeeFramework.jar」ファイルをサイトのダウンロードページから ダウンロードします。
- Java 動的WebプロジェクトのMETA-INF/libフォルダの中にLaBeeFramework.jarを配置します。
- インストールはこれで完了し、LaBeeFrameworkライブラリが使用出来る様になります。 

#設定ファイル
 LaBeeFrameworkを使用する為に、各設定ファイルを設定配置する必要があります。

- Java 動的Webプロジェクトのソースフォルダ”src”(Eclipseプロジェクトの場合)又は
  Classファイル出力フォルダ”classes”(Tomcat直接設定の場合)のトップディレクトリ内に
    configという名のフォルダを作成します。
- configフォルダ内に次に記載する各種設定ファイルを配置します、必須ではない設定ファイルは任意配置です。
- 設定ファイルの雛形はサイトのダウンロードページからダウンロードします。
    -    LaBeeFramework.properties(必須)
    -    ScreenDefine.csv(必須)
    -   DivisionDefine.csv
    -   MessageDefine.csv
    -   WordLabelDefine.csv 

~~~
    src/config/
            LaBeeFramework.properties
            ScreenDefine.csv
            DivisionDefine.csv
            MessageDefine.csv
            WordLabelDefine.csv
~~~


### LaBeeFramework.properties(必須)
  LaBeeFramework内部で使用する基本プロパティファイル。UTF-8文字コードで定義。 
  
|プロパティ項目名 |論理名 |必須 |概要|
|:--|:--|:--:|:--|
|HTTP_PATH |httpパス |○|通常のhttp通信URLのスキーマを定義 |
|HTTPS_PATH  |httpsパス  |○|SSL暗号化https通信URLのスキーマを定義  |
|HTTP_PORT  |httpポート  |○|通常のhttp通信のポート番号を定義  |
|HTTPS_PORT |httpsポート  |○|SSL暗号化https通信のポート番号を定義  |
|DATA_SOURCE_NAME  |データソース名  |○|DB接続の際のデータソース名を定義  |
|SYSTEM_FOLDER 	 | 	システムフォルダ |○|LaBeeFrameworkの各種ファイルを展開する為のフルパスディレクトリを定義。 予め設定したフォルダ構成が作られている必要があります。 
|JDBC_DRIVER  |JDBCドライバパス  ||DB接続で使用するJDBCドライバのフルパスディレクトリを定義、JDBCドライバをTomcatの WEB-INF/libに配置している場合は設定不要  |
|USE_DATABASE_FLG|データベース使用フラグ |○|Webアプリ内でデータベースを使用するか否かのフラグ値を定義。trueは使用、falseは不使用 |
|DATABASE_TYPE|データベース種別 |○|使用するデータベースの種別をMySQL,postgreSql,Oracleの文字列で定義、プログラム内で データベース種別によりSQL生成を分岐設定する際に参照する為に使用。LaBeeFrameworkでは MySQLのみ動作確認を行なっている。 |
|ENCODE_KEY |暗号化キー ||データベースへのレコード登録で暗号化登録を使用する場合の暗号化・複合化キーとして使用。 |
|DEFAULT_LOCALE |デフォルト言語 |○|多言語機能を使用する際のデフォルト言語ロケールの2文字言語コードを定義。日本語の場合はja,英語の場合はen |
|RESOURCE_ENC_CODE 	 |リソース文字コード |○|ScreenDefine.csv、DivisionDefine.csv、MessageDefine.csv、WordLabelDefine.csvのリソースファイルで 使用する文字コードを設定します。|
|LOG_LEVEL | ログレベル |○|ログ出力をする際のログファイルへの書込みレベルを定義する。0 = 全てのログをファイル出力、2 = デバックログ以上のログをファイル出力、4 = インフォログ以上のログをファイル出力、6 = エラーログ以上のログをファイル出力|
|LOG_ENCODE |ログ文字コード |○|ログファイル出力の文字コードを定義 |
|LOG_FILE_NAME |ログファイル名 	 |○|ログファイル名を定義。ログファイルはシステムフォルダ内のlogディレクトリ内に出力される。 |
|LOG_MAX_SIZE |ログファイル最大サイズ |○|ログファイルのローテーション最大バイトサイズ、指定サイズに達するとログファイルをローテーションする |
|ROBOT |クローラロボット定義  || クローラロボットを識別する為のUserAgent部分一致文字列をカンマ区切りで定義。プログラム内でクローラロボットからの アクセスの場合は特別な処理を行なう際の識別で使用する。 |
| SMT_PHONE  |スマートフォン定義 ||スマートフォンを識別する為のUserAgent部分一致文字列をカンマ区切りで定義。プログラム内でスマートフォンからの アクセスの場合は画面を切り替える等の特別な処理を行なう際の識別で使用する。 |
|TABLET_PAD  |タブレット定義 ||タブレットを識別する為のUserAgent部分一致文字列をカンマ区切りで定義。プログラム内でタブレットからの アクセスの場合は画面を切り替える等の特別な処理を行なう際の識別で使用する。 |
|BLOGIC_PACKAGE |ビジネスロジック格納パッケージ |○|ビジネスロジックのjavaソース、クラスを格納するパッケージのトップパスを定義する。ビジネスロジッククラスは ここで設定したパッケージ配下にパッケージ階層を作り配置する。 |
|DEFAULT_TARGET |デフォルトターゲット |○|ターゲットパラメータが未設定の場合にデフォルトで実行するターゲット名を定義する。 URLのトップパスを表示した際のindex.htmlの代わりに使用する事が出来る。|
|PRELOAD_SCRIPTS_PC|読み込みスクリプト名(PC) |○|必ず読み込まれるJavaScriptパスをカンマ区切りで定義。LaBeeFrameworkはデフォルトでjQueryを使用するのでこの定義箇所を削除 してはいけない、任意追加スクリプトは後に追加記述する。 |
|PRELOAD_SCRIPTS_SMP |読み込みスクリプト名(スマホ) |○|スマートフォン定義からのアクセスで必ず読み込まれるJavaScriptパスをカンマ区切りで定義。LaBeeFrameworkはデフォルトで jQueryを使用するのでこの定義箇所を削除してはいけない、任意追加スクリプトは後に追加記述する。 |
|PRELOAD_CSS |読み込みCSS |○|必ず読み込まれるスタイルシートパスをカンマ区切りで定義。LaBeeFrameworkはデフォルトでjQueryを使用するのでこの定義箇所を削除 してはいけない、任意追加CSSは後に追加記述する。 |


### ScreenDefine.csv(必須)
  画面情報を定義するカンマ区切りCSVファイル。LaBeeFramework.propertiesのRESOURCE_ENC_CODE項目で定義した文字コードで作る。
1行目は$で始まるヘッダ項目を固定記載し、2行目以降に1行1画面の設定項目を定義する。
 
|ヘッダ項目名 |論理名 |必須 |概要|
|:--|:--|:--:|:--|
|SCREEN_ID |画面ID |○|JSP個別画面を識別するID定義。基本的にビジネスロジッククラス名のターゲット名と同名を設定する。 ビジネスロジックを使用しないJSP単体使用の場合は任意IDを設定。|
|SCREEN_NAME  |画面名  |△ |ブラウザのタイトルに表示する画面名を設定する |
|LABEL_DIV  |画面名ラベル区分  |△ |ブラウザのタイトルに表示する画面名をラベル定義値から取得する際のラベル区分値。 画面名ラベルコード定義と連携する。画面名が設定されている場合は そちらを優先し、ラベル設定は無視される。 |
|LABEL_CD  |画面名ラベルコード  |△ |ブラウザのタイトルに表示する画面名をラベル定義値から取得する際のラベルコード値。画面名ラベル区分定義と連携する。画面名が設定されている場合は そちらを優先し、ラベル設定は無視される。|
|SSL  |SSLフラグ  ||この画面がSSL通信を必要とする場合にtrueを設定する。GETリンクカスタムタグ等でこの値を参照しURLを生成する。 未設定の場合はSSL未使用 |
|JSP(pc)  |JSPパス(PC)  |○|通常で使用するPCアクセス用画面のJSPパスを定義する。JSPを格納するパスはセキュリティを考慮しWEB-INFがトップパスとなっている 、設定値はWEB-INF文字列を除いた移行のパスを設定する。 |
|JSP (smart phone)  |JSPパス(スマホ)  ||スマートフォン定義からのアクセス用画面のJSPパスを定義する。JSPを格納するパスはセキュリティを考慮しWEB-INFがトップパスとなっている 、設定値はWEB-INF文字列を除いた移行のパスを設定する。 |
|JSP (tablet)  |JSPパス(タブレット)  ||タブレット定義からのアクセス用画面のJSPパスを定義する。JSPを格納するパスはセキュリティを考慮しWEB-INFがトップパスとなっている 、設定値はWEB-INF文字列を除いた移行のパスを設定する。 |
|ADD_SCRIPTS  |個別追加スクリプト  ||画面個別に追加設定するJavaScriptファイルパスをセミコロン(;)で区切って定義する。 |
|ADD_CSS  |個別追加スタイルシート  ||画面個別に追加設定するスタイルシートファイルパスをセミコロン(;)で区切って定義する。 |
|OPTION1 |任意パラメータ1 	 ||画面個別に任意値を設定出来るパラメータ定義1 |
|OPTION2 |任意パラメータ2 	 ||画面個別に任意値を設定出来るパラメータ定義2 |
|OPTION3 |任意パラメータ3 	 ||画面個別に任意値を設定出来るパラメータ定義3 |
|OPTION4 |任意パラメータ4 	 ||画面個別に任意値を設定出来るパラメータ定義4 |

### DivisionDefine.csv
 セレクトボックス、チェックボックス、ラジオボタン等の選択支値や汎用に使用出来るコード値区を定義するカンマ区切りCSVファイル。
LaBeeFramework.propertiesのRESOURCE_ENC_CODE項目で定義した文字コードで作る。
1行目は$で始まるヘッダ項目を記載し、2行目以降に1行1区分値の設定項目を定義する。

**ヘッダ**

|ヘッダ項目名 |論理名 |必須 |概要|
|:--|:--|:--:|:--|
|DIV_ID |区分値ID |○ |$DIV_IDを固定設定 |
|ITEM_NO  |アイテムNo  |○ |ITEM_NOを固定設定  |
|ITEM_VALUE  |アイテム値  |○ |ITEM_VALUEを固定設定  |
|言語ロケールコード |  |○ |当CSVヘッダの4カラム目以降は2文字言語ロケールコードを設定する。 4カラム目以降には複数の言語コードカラムを追加する事が出来る、例えば4カラム目にja, 5カラム目にenに設定する事で指定した言語のコード値を切り替えて取得出来る。  |

**ボディ**

|ヘッダ項目名 |論理名 |必須 |概要|
|:--|:--|:--:|:--|
|DIV_ID |区分値ID |○ |区分値のグループを識別する為のID、同じDIV_IDのデータは同じグループとして扱われる。DIV_IDとITEM_NOでユニークなデータとなる  |
|ITEM_NO  |アイテムNo  |○ |DIV_IDグループの中で1つの区分値を識別する為の番号  |
|ITEM_VALUE  |アイテム値  |○ |ITEM_NOのコード区分番号に紐づく任意コード値  |
|言語ロケールコード  |区分値ID |○ |ヘッダで指定したロケール言語コードに対応するコード値の表示値を設定する。ヘッダで複数の言語ロケールコードを 設定した場合はボディにも複数の言語別の値を設定する必要がある。  |


### MessageDefine.csv
エラーメッセージやダイアログ表示メッセージで表示等、汎用に使用出来るメッセージ文言を定義するカンマ区切りCSVファイル。
LaBeeFramework.propertiesのRESOURCE_ENC_CODE項目で定義した文字コードで作る。
1行目は$で始まるヘッダ項目を記載し、2行目以降に1行1メッセージ文言の設定項目を定義する。

**ヘッダ**

|ヘッダ項目名 |論理名 |必須 |概要|
|:--|:--|:--:|:--|
|MSG_CD |メッセージコード |○|$MSG_CDを固定設定 |
|言語ロケールコード | |○|当CSVヘッダの2カラム目以降は2文字言語ロケールコードを設定する。 2カラム目以降には複数の言語コードカラムを追加する事が出来る、例えば2カラム目にja, 3カラム目にenに設定する事で指定した言語のコード値を切り替えて取得出来る。  |

**ボディ**

|ヘッダ項目名 |論理名 |必須 |概要|
|:--|:--|:--:|:--|
|MSG_CD |メッセージコード |○|メッセージを識別する為のユニーク値  |
|言語ロケールコード | |○|ヘッダで指定したロケール言語コードに対応するメッセージ文言値を設定する。ヘッダで複数の言語ロケールコードを 設定した場合はボディにも複数の言語別の文言値を設定する必要がある。 メッセージ文言中にカンマ文字列は使用出来ないので注意が必要。メッセージ中には3個まで置換え文字を{0}の様に設定する事が出来る。(例){0}は{1}の為エラーです。  |



### WordLabelDefine.csv
ボタン項目名や画面表示のワードラベル文字列等、汎用に使用出来る短文言を定義するカンマ区切りCSVファイル。
LaBeeFramework.propertiesのRESOURCE_ENC_CODE項目で定義した文字コードで作る。
1行目は$で始まるヘッダ項目を記載し、2行目以降に1行1ワードラベル文言の設定項目を定義する。

**ヘッダ**

|ヘッダ項目名 |論理名 |必須 |概要|
|:--|:--|:--:|:--|
|LABEL_CD  |ラベルコード  |○|$MSG_CDを固定設定 |
|LABEL_DIV   |ラベル区分  |○|LABEL_DIVを固定設定  |
|言語ロケールコード  | |○|当CSVヘッダの3カラム目以降は2文字言語ロケールコードを設定する。 3カラム目以降には複数の言語コードカラムを追加する事が出来る、例えば3カラム目にja, 4カラム目にenに設定する事で指定した言語のコード値を切り替えて取得出来る。 |


**ボディ**

|ヘッダ項目名 |論理名 |必須 |概要|
|:--|:--|:--:|:--|
|LABEL_CD  |ラベルコード  |○|ワードラベルを識別する為のコード値。ラベル区分(LABEL_DIV)とラベルコード(LABEL_CD)の組み合わせでユニーク値となる。 |
|LABEL_DIV   |ラベル区分  |○|ワードラベルのグループ区分を識別する区分値。例としてbutton区分のラベルコードがentryという様な括りで管理する。  |
|言語ロケールコード  | |○|ヘッダで指定したロケール言語コードに対応するラベル文言値を設定する。ヘッダで複数の言語ロケールコードを 設定した場合はボディにも複数の言語別の文言値を設定する必要がある。  |