日本語メッセージの表示

Webアプリで日本語メッセージを表示する方法としては、messages.properties に日本語メッセージを
書いて、native2ascii で UNICODE 変換する方法が一般的です。

SpringMVCでも、AbstractControllerクラスおよび SimpleFormControllerクラスでは、
「MessageSourceAccessor msgSource = super.getMessageSourceAccessor();」として取得できる
オブジェクトを使うと「WEB-INF/classes/messages.properties」の文字列を取り出せます。

しかし、ここでSpringではなく、Maven2の問題点が発生します。
Maven2で native2ascii を実行するのは、とっても面倒なのです。

自作ソフト XMsgUtil

そこで、本サイトで以前に紹介した、XMsgUtilを使用します。
XML宣言のencodingを正しく記述しておけば、Shift_JISでもEUC-JPでもUTF-8でも
開発者の好みのエンコードで message.xmlを作成できます。

XMsgUtilのインストール
本サイトの記事 XMsgUtilのインストール を 参照して、下記の準備を整えてください。

  • com-jxpath-commons.zipをダウンロードして展開する
  • com-jxpath-commons を mvn installする
  • SpringWeb2のpom.xmlに<dependency>を追加する

Webアプリの改修

では、作成中のWebアプリから message.xmlの文字列を表示してみましょう。
以下の XMLを message.xmlというファイル名で、「src/main/resource」フォルダに追加してください。

次に、login.jspに、/msg/title と/msg/button/submit の文字列を表示します。
login.jspに、下記のように追記します。
変更箇所

  1. 1行目 : jxpathというカスタムタグを使うための宣言
  2. 3行目〜5行目 : login画面のWindowタイトル設定
  3. 10行目 : ボタンに「送信(/msg/button/submit)」を表示

動かしてみよう

では、変更したlogin.jspを確認してみましょう。
SpringWeb2を mvn package して tomcat を起動後、http://localhost:8080/SpringWeb2/を
開くと、下の図のように、確かに日本語メッセージが表示されていますね。