サポート > Wagby Developer Network > 見栄えのカスタマイズ > 画面に表示されるメッセージの変更

Wagby が画面に出力する各種メッセージの内容を変更する方法を説明します。

システム管理系のメッセージ

Wagby で扱うメッセージは「プロパティファイル」という形式で格納されています。 システム管理系のメッセージは、$(DEVHOME)\env\template\jfcapp_ja.properties.UTF8 というファイルになります。 ファイルの一部を以下に転載します。

...
__jfc_common.logon.title=ログオン
__jfc_common.logon.userid=ユーザー名
__jfc_common.logon.password=パスワード
__jfc_common.logon.submit=ログオン
__jfc_common.logon.message={0} さんがログオンしています。
__jfc_common.search.notfound=一件も見つかりません。
__jfc_common.search.action=検索条件を入力してください。
__jfc_common.search.again=検索条件の再編集
__jfc_common.search.count=検索条件に合致したデータは{0}件見つかりました。
__jfc_common.search.status={0}件中、{1}件目から{2}件目を表示しています。
__jfc_common.search.run=検索の実行
__jfc_common.search.clearcondition=検索条件のクリア
...

プロパティファイル内の 1 行は「リソースキー=メッセージ」というペアで表現されます。 リソースキーはすべて「__jfc_」が接頭語になります。この部分は変更してはいけません。

メッセージ部では「プレースホルダ」を使うことができます。これは {0}, {1} という表記です。実際にはこの部分に適切な文字が設定されます。

プロジェクト固有のメッセージ

プロジェクト毎に固有のメッセージリソースは、(Wagby ビルダの)「ビルド処理」によって $(DEVHOME)\env\work\srcgen\webpage\WEB-INF\classes フォルダに jfcapp_ja.properties.UTF8 として用意されます。 具体的な例を示します。

...
staff.pagetitle.download=スタッフ ダウンロード
staff.pagetitle.insert=スタッフ 新規登録
staff.pagetitle.show=スタッフ 詳細表示
staff.pagetitle.showList=スタッフ 検索
staff.pagetitle.update=スタッフ 更新
staff.photo=写真
staff.registration=就業状況
staff.retiredate=退社年月日
staff.tel=自宅TEL
...

なお、自動生成された jfcapp_ja.properties.UTF8 ファイルには、システム管理系のメッセージ(__jfc_ ではじまるメッセージ)も含まれます。 すなわち、$(DEVHOME)\env\template\jfcapp_ja.properties.UTF8 ファイルがマージ(統合)される仕組みになっています。

変更方法

メッセージのカスタマイズは、上記ファイルを直接、変更するのではなく、差分のメッセージファイルを用意することで実現します。具体的な設定方法を説明します。

  1. $(DEVHOME)\env\webpage\WEB-INF\src\myapp_ja.properties.UTF8 ファイルを編集します。この中に、変更したいメッセージを「リソースキー=メッセージ」という表現で記述します。複数ある場合は、1 行ごとに改行して記述してください。
  2. Wagby ビルダを起動し、「ビルド処理」を行います。(差分ビルドを適用します。) すると同ファイルは jfcapp_ja.properties.UTF8 とマージされたのち、wagbyapp\webapps\$(APPNAME)\WEB-INF\classes にコピーされます。(なお、$(APPNAME) はプロジェクト名(英語)に相当します。標準は「wagby」となっています。)
  3. Web アプリケーションを再起動します。メッセージが変わっていることを確認してください。

上記の手順でメッセージをカスタマイズした場合、以降のビルド処理では常にカスタマイズされたメッセージが適用されるようになります。

メッセージリソースの動作の仕組み

自動生成される JSP ファイル内においては、これらのメッセージは <fmt:message>タグによって参照され、表示されるようになっています。 例として、ページタイトルを表示する JSP ファイルを説明します。

<%@ page pageEncoding="UTF-8" %>
<fmt:setBundle basename="jfcapp"/> ...(1)
<div class="pagetitle" id="showSales">
  <fmt:message key="sales.pagetitle.show"/> ...(2)
</div>

(1) では、リソースファイル名が "jfcapp" であることを宣言しています。これによって、$(APPHOME)\webapps\$(APPNAME)\WEB-INF\classes フォルダの jfcapp.properties ファイルが参照されるようになります。

(2) では、リソースキーを指定しています。リソースキーに合致したメッセージが、この部分に埋め込まれ、表示されるようになります。

もう一つの変更方法

自動生成された各種 JSP ファイルを修正し、<fmt:message> タグの部分に直接、文字列を埋め込むこともできます。例えば、次のようになります。

<%@ page pageEncoding="UTF-8" %>
<div class="pagetitle" id="showSales">
  営業日報
</div>

修正したファイルを $(DEVHOME)\env\webpage に保存することで、何度ビルドしても常にカスタマイズしたファイルが適用されるようになります。(この仕組みの詳細は、ファイル置換の考え方をお読みください。)

ただし、この方法は次の観点から、推奨するものではありません。

  • Wagby が提供する国際化の仕組みが使えなくなる。
  • モデル定義を変更するたびに、ファイル置換の設定をやりなおす必要がある。