目次 > 第2章 Server(Web)版チュートリアル > 2.4 ログオン/ログオフ > 2.4.3 入出力クラスの作成と設定
2.4.3 入出力クラスの作成と設定
入力クラスはビジネスロジックの引数となるクラスであり、ビジネスロジックで必要になる値をアクションフォームやセッションなどからコピーして設定する。
出力クラスはビジネスロジックの業務処理結果を格納するクラスであり、出力クラスの値をアクションフォームやセッションなどにコピーする。
入出力クラスとアクションフォームおよびセッションとのマッピングは、業務ごとの入出力設定ファイル(blogic-io.xml)に記述する。
■ 入出力クラス作成と設定
本項では、ログオン時に入力した「ユーザID」を入力クラスに設定する手順と、ビジネスロジックで出力クラスに設定されるUVOをセッションに登録する手順を説明する。
手順
本項では以下の手順が必要になる。
(1) 入力クラスの作成
- “terasoluna-spring-thin-blank\sources”を右クリックする。
- 「新規」→「クラス」を選択する。
- 以下の通り入力し、「終了」ボタンを押下する。
- パッケージ:jp.terasoluna.thin.tutorial.web.logon.dto
- 名前:LogonInput
- 生成されたLogonInputクラスを以下のように編集する。
package jp.terasoluna.thin.tutorial.web.logon.dto; /** * ログオン処理の入力クラス。 */ public class LogonInput { /** * ユーザID */ private String userId = null; /** * ユーザIDを返却する。 * @return ユーザID */ public String getUserId() { return userId; } /** * ユーザIDを設定する。 * @param userId ユーザID */ public void setUserId(String userId) { this.userId = userId; } }
(2) 出力クラスの作成
- “terasoluna-spring-thin-blank\sources”を右クリックする。
- 「新規」→「クラス」を選択する。
- 以下の通り入力し、「終了」ボタンを押下する。
- パッケージ:jp.terasoluna.thin.tutorial.web.logon.dto
- 名前:LogonOutput
- 生成されたLogonInputクラスを以下のように編集する。
package jp.terasoluna.thin.tutorial.web.logon.dto; import jp.terasoluna.thin.tutorial.web.common.uvo.TutorialUVO; /** * ログオン処理の出力クラス。 * */ public class LogonOutput { /** * ログイン情報を保持するUserValueObject */ private TutorialUVO uvo = null; /** * UserValueObjectを返却する。 * @return UserValueObject */ public TutorialUVO getUvo() { return uvo; } /** * UserValueObjectを設定する。 * @param uvo UserValueObject */ public void setUvo(TutorialUVO uvo) { this.uvo = uvo; } }
(3) 入出力設定ファイルの編集
作成した入出力クラスの属性のマッピングを入出力設定ファイルに設定する。
- “terasoluna-spring-thin-blank\webapps\WEB-INF\logon\blogic-logon-io.xml”を開き、以下の箇所に入出力の設定を追加する。
<!-- ビジネスロジック入出力定義 --> <blogic-io> <action path="/logon/logonBL"> <!-- 入力クラスの設定 --> <blogic-params bean-name="jp.terasoluna.thin.tutorial.web.logon.dto.LogonInput"> <set-property property="userId" blogic-property="userId" source="form" /> </blogic-params> <!-- 出力クラスの設定 --> <blogic-result> <set-property property="USER_VALUE_OBJECT" blogic-property="uvo" dest="session" /> </blogic-result> </action> </blogic-io>
入出力クラスの設定は、アクションパス毎に設定する。<action>要素のpath属性には、Struts設定ファイルに記述するアクションパス名と同じパスを記述する。
<blogic-params>要素に入力クラスの設定を記述する。入力クラスはフレームワーク側がインスタンスを生成するため、入力クラスを完全修飾名で設定する必要がある。
<blogic-result>要素に出力クラスの設定を記述する。出力クラスはビジネスロジック内でインスタンスを生成するロジックを記述するため、名前の指定は不要である。
ぞれぞれの子要素である<set-property>要素の属性を以下に示す。
属性 | 説明 |
property | アクションフォームに格納する場合はアクションフォームに定義した属性名 セッションに登録する場合は登録キー名 |
blogic-property | 入出力クラスに定義した属性名 |
source | データの取得元 |
dest | データの出力先 |
また、source属性とdest属性に設定可能な値を以下に示す。
値 | 説明 |
form | アクションフォームを表す |
session | セッションを表す |
request | リクエストを表す |
application | アプリケーションを表す(source属性のみ設定可能) |