目次 > 第2章 Server(Web)版チュートリアル > 2.6 登録処理 > 2.6.5 メッセージの設定
2.6.5 メッセージの設定
通常、画面に表示するメッセージやボタン名などは画面に直接記述せず、メッセージリソースファイルで管理する。メッセージ管理には以下のメリットがある。
- 文言の修正など、画面に記述した場合と比べ変更コストが低い。
- 国際化対応によるメッセージ切り替えが容易である。
Server(Web)版では、業務的なメッセージはBLogicResultに設定することで画面に表示することができる。
■ BLogicResultの構成
上図のように、BLogicResultには処理結果などのメッセージ情報とエラー情報を設定することができ、状況に応じて使い分ける。
本項では、メッセージリソースの設定方法と、Server(Web)版が提供するBLogicMessageクラス、BLogicMessagesクラスの利用方法について説明する。
手順
(1) メッセージリソースファイルの編集
「結果画面」と「登録画面」に表示するメッセージを定義する。
- “terasoluna-spring-thin-blank\sources\application-messages.properties”を開き、以下のメッセージを追加する。
message.regist=ID{0}のユーザーを登録しました。 errors.input.id.repeat=入力されたIDは重複しています。別IDを指定してください。
(2) ビジネスロジッククラスの編集
登録するユーザIDが存在する場合、エラー情報を設定する。また、正常に登録できた場合にはメッセージ情報を設定する。
- 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に設定したメッセージを表示するタグを記述する。
- “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"> ・・・略・・・
- “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 入力チェック(単項目)」を参照のこと。