目次 > 第2章 Server(Web)版チュートリアル > 2.4 ログオン/ログオフ > 2.4.2 ユーザーバリューオブジェクトの作成と設定
2.4.2 ユーザーバリューオブジェクトの作成と設定
Server(Web)版が提供するユーザーバリューオブジェクト(以降、UVOとする)とは、ログオン中のユーザ情報を保持するオブジェクトであり、セッションに格納される。
UVOの生成と利用の流れを以下に示す。
■ UVO生成と利用の流れ
- ログオン画面から「ユーザID」を入力し、ログオンする。リクエストで受け取った「ユーザID」はアクションフォームに格納される。
- アクションフォームの「ユーザID」はビジネスロジックの入力クラスに格納される。
- ビジネスロジックで入力クラスを受け取る。
- UVOを生成し「ユーザID」をUVOに設定する。
- UVOをビジネスロジックの出力クラスに格納する。
- セッションにUVOが格納される。
- メニュー画面でセッションに登録したUVOの「ユーザID」を参照する。
本項では、UVOクラスの作成とビジネスロジックでUVOを利用するための前準備、画面からの参照手順について説明する。
ビジネスロジックの入出力クラスについては、次項「2.4.3 入出力クラスの作成と設定」で説明する。
また、ビジネスロジックでUVOを利用する手順については「2.4.4 ビジネスロジッククラスの作成と設定」で説明する。
手順
本項では以下の作業が必要になる。
(1) UVOの生成
- “terasoluna-spring-thin-blank\sources”を右クリックする。
- 「新規」→「クラス」を選択する。
- 以下の通り入力し、「終了」ボタンを押下する。
- パッケージ:jp.terasoluna.thin.tutorial.web.common.uvo
- 名前:TutorialUVO
- スーパークラス:jp.terasoluna.fw.web.UserValueObject
- 生成されたTutorialUVOクラスを以下のように編集する。
package jp.terasoluna.thin.tutorial.web.common.uvo; import jp.terasoluna.fw.web.UserValueObject; /** * ユーザーバリューオブジェクト実装クラス。 * */ public class TutorialUVO extends UserValueObject { /** * シリアルバージョンID。 */ private static final long serialVersionUID = 1L; /** * ユーザ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; } }
UVOは必ずServer(Web)版が提供するUserValueObjectクラスを継承して作成する。
(2) アプリケーションリソースファイルの編集
アプリケーションリソースファイルにUVOの実装クラスを指定することで、ユーティリティクラスからUVOのインスタンスを取得することができる。
- “terasoluna-spring-thin-blank\sources\ApplicationResources.properties”を開き、以下を追加する。
#UVO user.value.object=jp.terasoluna.thin.tutorial.web.common.uvo.TutorialUVO
(3) メニュー画面の編集
メニュー画面ではセッションに登録されたユーザIDを表示する。
- “terasoluna-spring-thin-blank\webapps\logon”に“menu.jsp”を作成し、以下のように編集する。
<%@ page contentType="text/html; charset=Windows-31J"%> <%@ taglib uri="/struts-html" prefix="html" %> <%@ taglib uri="/struts-bean" prefix="bean" %> <%@ taglib uri="/struts-logic" prefix="logic" %> <%@ taglib uri="/terasoluna-struts" prefix="ts" %> <%@ taglib uri="/terasoluna" prefix="t" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>メニュー画面</title> </head> <body> <table border="0" style="width:100%;"> <tr> <td align="center"> <html:img module="/" page="/image/terasoluna_logo.gif" /> </td> </tr> <tr> <td align="center"> <h2> メニュー画面 </h2> ようこそ <bean:write name="USER_VALUE_OBJECT" property="userId" scope="session" ignore="true"/> さん。 </td> </tr> </table> </body> </html:html>
Strutsが提供する<bean:write>タグは、指定したBeanの属性を出力する。属性を以下に示す。
属性 | 説明 |
name | Bean名 |
property | Beanの属性名 |
scope | 参照先 |
ignore | trueを指定した場合、scopeで指定した参照先にnameで指定したBeanが存在しない場合は何もしない。 falseを設定した場合、scopeで指定した参照先にnameで指定したBeanが存在しない場合は例外が発生する。 |
name属性にはUVOの登録キーを指定し、property属性にはUVOに設定した「ユーザID」の属性名を指定する。