目次 > 第2章 Server(Web)版チュートリアル >  2.4 ログオン/ログオフ > 2.4.2 ユーザーバリューオブジェクトの作成と設定

2.4.2 ユーザーバリューオブジェクトの作成と設定

Server(Web)版が提供するユーザーバリューオブジェクト(以降、UVOとする)とは、ログオン中のユーザ情報を保持するオブジェクトであり、セッションに格納される。
UVOの生成と利用の流れを以下に示す。

UVO生成と利用の流れ

  1. ログオン画面から「ユーザID」を入力し、ログオンする。リクエストで受け取った「ユーザID」はアクションフォームに格納される。
  2. アクションフォームの「ユーザID」はビジネスロジックの入力クラスに格納される。
  3. ビジネスロジックで入力クラスを受け取る。
  4. UVOを生成し「ユーザID」をUVOに設定する。
  5. UVOをビジネスロジックの出力クラスに格納する。
  6. セッションにUVOが格納される。
  7. メニュー画面でセッションに登録したUVOの「ユーザID」を参照する。

本項では、UVOクラスの作成とビジネスロジックでUVOを利用するための前準備、画面からの参照手順について説明する。
ビジネスロジックの入出力クラスについては、次項「2.4.3 入出力クラスの作成と設定」で説明する。
また、ビジネスロジックでUVOを利用する手順については「2.4.4 ビジネスロジッククラスの作成と設定」で説明する。

手順

本項では以下の作業が必要になる。

(1) UVOの生成

  1. “terasoluna-spring-thin-blank\sources”を右クリックする。
  2. 「新規」→「クラス」を選択する。
  3. 以下の通り入力し、「終了」ボタンを押下する。
    • パッケージ:jp.terasoluna.thin.tutorial.web.common.uvo
    • 名前:TutorialUVO
    • スーパークラス:jp.terasoluna.fw.web.UserValueObject
  4. 生成された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のインスタンスを取得することができる。

  1. “terasoluna-spring-thin-blank\sources\ApplicationResources.properties”を開き、以下を追加する。
    #UVO
    user.value.object=jp.terasoluna.thin.tutorial.web.common.uvo.TutorialUVO
    

(3) メニュー画面の編集

メニュー画面ではセッションに登録されたユーザIDを表示する。

  1. “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の属性を出力する。属性を以下に示す。

属性説明
nameBean名
propertyBeanの属性名
scope参照先
ignoretrueを指定した場合、scopeで指定した参照先にnameで指定したBeanが存在しない場合は何もしない。
falseを設定した場合、scopeで指定した参照先にnameで指定したBeanが存在しない場合は例外が発生する。

name属性にはUVOの登録キーを指定し、property属性にはUVOに設定した「ユーザID」の属性名を指定する。


次項:2.4.3 入出力クラスの作成と設定

Copyright (C) 2009 NTT DATA CORPORATION