目次 > 第2章 Server(Web)版チュートリアル >  2.6 登録処理 > 2.6.5 メッセージの設定

2.6.5 メッセージの設定

通常、画面に表示するメッセージやボタン名などは画面に直接記述せず、メッセージリソースファイルで管理する。メッセージ管理には以下のメリットがある。

  • 文言の修正など、画面に記述した場合と比べ変更コストが低い。
  • 国際化対応によるメッセージ切り替えが容易である。


Server(Web)版では、業務的なメッセージはBLogicResultに設定することで画面に表示することができる。


BLogicResultの構成

上図のように、BLogicResultには処理結果などのメッセージ情報とエラー情報を設定することができ、状況に応じて使い分ける。

本項では、メッセージリソースの設定方法と、Server(Web)版が提供するBLogicMessageクラス、BLogicMessagesクラスの利用方法について説明する。

手順

(1) メッセージリソースファイルの編集

「結果画面」と「登録画面」に表示するメッセージを定義する。

  1. “terasoluna-spring-thin-blank\sources\application-messages.properties”を開き、以下のメッセージを追加する。
    message.regist=ID{0}のユーザーを登録しました。
    errors.input.id.repeat=入力されたIDは重複しています。別IDを指定してください。
    

(2) ビジネスロジッククラスの編集

登録するユーザIDが存在する場合、エラー情報を設定する。また、正常に登録できた場合にはメッセージ情報を設定する。

  1. InsertBLogicクラスを開き、以下のようにメッセージ設定処理を追加する。
        ・・・略・・・
    
        /**
         * 登録処理を行う。
         */
        public BLogicResult execute(InsertInput param) {
            BLogicResult result = new BLogicResult();
                
            SelectUserOutput selectUserOutput 
                = queryDAO.executeForObject("getUser", param, SelectUserOutput.class);
            
            //登録するIDが重複してる場合は異常処理をする
            if(selectUserOutput != null) {
                
                //ここから
                //エラーメッセージ処理
                BLogicMessages messages = new BLogicMessages();
                        messages.add("message", new BLogicMessage("errors.input.id.repeat"));
                        result.setErrors(messages);
                        //ここまで
    
                result.setResultString("failure");
                return result;
            }
            
            //登録処理
            updateDAO.execute("insertUser", param);
            
            //ここから
            //メッセージ処理
            BLogicMessages messages = new BLogicMessages();
                    messages.add("message", new BLogicMessage("message.regist",param.getId()));
                    result.setMessages(messages);
                    //ここまで
    
                    result.setResultString("success");
                    return result;
        }
    
        ・・・略・・・
    

BLogicMessageを生成する際、メッセージリソースファイルに定義したメッセージのキーと、パラメータを設定する。BLogicMessagesクラスには、生成したBLogicMessageを追加する。
BLogicResultにBLogicMessagesを設定する際、エラーメッセージであればsetErrorsメソッド、処理結果などのメッセージであればsetMessagesメソッドと、メッセージの種類により呼び出すメソッドが異なる。

(3) 画面の編集

BLogicResultに設定したメッセージを表示するタグを記述する。

  1. “terasoluna-spring-thin-blank\webapps\userManager\insert.jsp”を開き、以下の箇所にエラーメッセージを表示するタグを設定する。
    ・・・略・・・
    
    <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>
            </td>
        </tr>
    </table>
    
    <!-- ここから -->
    <!-- エラーメッセージを表示する -->
    <html:errors />
    <!-- ここまで -->
    
    <ts:form action="/userManager/insertBL">
    
    ・・・略・・・
    
    
  2. “terasoluna-spring-thin-blank\webapps\userManager\result.jsp”を開き、以下の箇所にメッセージを表示するタグを設定する。
    ・・・略・・・
    
    <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>
            </td>
        </tr>
        <tr>
            <td align="center">
                <!-- ここから -->
                <!-- メッセージを表示する -->
                <html:messages id="message" message="true">
                    <bean:write name="message"/>
                </html:messages>
                <!-- ここまで -->
            </td>
        </tr>
    </table>
    
    ・・・略・・・
    

BLogicResultのsetErrorsメソッドを利用したメッセージの表示は、<html:errors>タグを利用する。
setMessagesメソッドを利用したメッセージの表示は、<html:messages>タグと<bean:write>タグを利用する。

備考

<html:errros>タグは、入力チェックのエラーメッセージを表示する際にも利用する。 また、<html:errors>でエラーメッセージが表示される場合は、BLogic-IOの反映処理は行われない。
入力チェックについては「2.8 入力チェック(単項目)」を参照のこと。


次項:2.6.6 アクションパスの設定

Copyright (C) 2009 NTT DATA CORPORATION