目次 > 第2章 Server(Web)版チュートリアル > 2.3 設定ファイルの分割と画面遷移 > 2.3.1 業務の作成
2.3.1 業務の作成
Server(Web)版ではStruts設定ファイル(struts-config.xml)にアクションフォームやアクションパスの設定を記述していく。Spring設定ファイルにアクションやビジネスロジックの設定を記述していく。開発規模が大きくなるにつれてこれらの設定ファイルの内容も膨大になり、以下のような問題が発生する。
- 可読性が低下する
- 開発者間での競合が起こりやすい
- 業務単位でリリースする場合の切り分けが複雑になる
Server(Web)版では設定ファイルを分割することができ、業務やチーム単位で管理することができる。チュートリアルでは業務単位で設定ファイルを分割する。
本項で、設定ファイルの分割の手順について説明していく。
手順
本項では以下の作業が必要になる。
(1) 業務フォルダの作成
業務ごとの設定ファイルを格納するフォルダを作成する。業務と対応するフォルダを下表に示す。
業務名 | フォルダ名 |
ログオン業務 | logon |
ユーザ管理業務 | userManager |
- “terasoluna-spring-thin-blank\webapps\WEB-INF”を右クリックする。
- 「新規」→「フォルダー」を選択する。フォルダー名に“logon”と入力し、「終了」ボタンを押下する。
- 同様に、“terasoluna-spring-thin-blank\webapps\WEB-INF”直下に“userManager”フォルダを作成する。
(2) 各業務の設定ファイルの作成
作成した業務フォルダに、Struts設定ファイルをはじめとする以下の設定ファイルを作成する。
設定ファイル | logonフォルダに格納するファイル | userManagerフォルダに格納するファイル |
Struts設定ファイル | struts-logon-config.xml | struts-userManager-config.xml |
Spring設定ファイル | logonContext.xml | userManagerContext.xml |
バリデーション設定ファイル | validation-logon.xml | validation-userManager.xml |
入出力設定ファイル | blogic-logon-io.xml | blogic-userManager-io.xml |
- “terasoluna-spring-thin-blank\webapps\WEB-INF\logon”を右クリックする。
- 「新規」→「ファイル」を選択する。ファイル名に“struts-logon-config.xml”と入力し、「終了」ボタンを押下する。
- 同様に、上表で記したファイルを全て作成する。
- ユーザ管理業務の設定ファイルは、userManagerフォルダに作成すること。
- 作成したファイル開き、以下のように編集する。
- “struts-logon-config.xml”、“struts-userManager-config.xml”の編集内容
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <!-- ======================================== フォームビーン定義 --> <form-beans> </form-beans> <!-- ======================================== アクションマッピング定義 --> <action-mappings type="jp.terasoluna.fw.web.struts.action.ActionMappingEx"> </action-mappings> </struts-config>
- “logonContext.xml”、“userManagerContext.xml”の編集内容
<?xml version="1.0" encoding="UTF-8" ?> <!-- Bean定義 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd"> <!-- アクション定義 --> </beans>
- “blogic-logon-io.xml”、“blogic-userManager-io.xml”の編集内容
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE blogic-io PUBLIC "-//NTTDATA//DTD TERASOLUNA for Spring blogic-io 1.0//JA" "dtd/blogic-io.dtd"> <!-- ビジネスロジック入出力定義 --> <blogic-io> </blogic-io>
- “validation-logon.xml”、“validation-userManager.xml”の編集内容
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN" "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"> <form-validation> </form-validation>
(3) 設定ファイルの分割設定
手順(2)で作成した設定ファイルをWebアプリケーション設定ファイルとデフォルトモジュールのStruts設定ファイルに定義する。以下の設定を追加することで、分割した各設定ファイルを読み込むことが可能になる。
- “terasoluna-spring-thin-blank\webapps\WEB-INF\web.xml”を開き、以下の箇所に各業務のStruts設定ファイルを定義する。
<!-- ======================================== サーブレット定義 --> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <!-- ここから各業務のStruts設定ファイルを定義する。 --> <param-value>/WEB-INF/struts-config.xml,/WEB-INF/logon/struts-logon-config.xml,/WEB-INF/userManager/struts-userManager-config.xml</param-value> <!-- ここまで --> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
- “terasoluna-spring-thin-blank\webapps\WEB-INF\struts-config.xml”を開き、以下の箇所に各業務のSpringBean設定ファイル、バリデーション設定ファイル、入出力設定ファイルを定義する。
<!-- ======================================== プラグイン定義 --> <!-- SpringBean設定ファイル --> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/moduleContext.xml,/WEB-INF/logon/logonContext.xml,/WEB-INF/userManager/userManagerContext.xml"/> </plug-in> <plug-in className="jp.terasoluna.fw.web.struts.plugins.ResetterPlugIn"> <set-property property="resetter" value="jp.terasoluna.fw.web.struts.reset.ResetterImpl"/> <set-property property="resources" value="/WEB-INF/reset.xml"/> <set-property property="digesterRules" value="/WEB-INF/reset-rules.xml"/> </plug-in> <!-- バリデーション設定ファイル --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator-rules-ex.xml,/WEB-INF/validation.xml,/WEB-INF/logon/validation-logon.xml,/WEB-INF/userManager/validation-userManager.xml"/> <set-property property="stopOnFirstError" value="false"/> </plug-in> <!-- 入出力設定ファイル --> <plug-in className="jp.terasoluna.fw.web.struts.plugins.BLogicIOPlugIn"> <set-property property="resources" value="/WEB-INF/blogic-io.xml,/WEB-INF/logon/blogic-logon-io.xml,/WEB-INF/userManager/blogic-userManager-io.xml"/> <set-property property="digesterRules" value="/WEB-INF/blogic-io-rules.xml"/> <set-property property="mapperClass" value="jp.terasoluna.fw.service.thin.BLogicMapper"/> </plug-in>