ひこぽんのーと

覚書と雑記です。

JavaEE 7をやってみよう。 Message Resource その2

その1のつづき。

エラーメッセージについて。
実はデフォルトでもエラーメッセージは用意されている。
「なら、作らなくていいじゃん!」と思うけど、
実はこれ、英語はわからんが、日本語はださい。

f:id:nagamitsu1976:20150730165138p:plain

さすがに項目名もメッセージもこのままは使えないっしょ。
というわけで、
既存メッセージを上書きする定義をfaces-config.xmlに追加する。

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
    version="2.2">
    <application>
        <locale-config>
            <default-locale>ja</default-locale>
        </locale-config>
        <message-bundle>resources.message</message-bundle>
        <resource-bundle>
            <base-name>resources.itemname</base-name>
            <var>itemName</var>
        </resource-bundle>
    </application>
</faces-config>

その1でも書いたものと同じだけど
今回着目するのは、message-bundleタグ。
ここに、resource-bundleと同じ要領でファイルを指定すれば良い。

追加したファイルはこんな。

  • message_ja.properites
javax.faces.component.UIInput.REQUIRED = {0}は、必須なのです。(´・ω・`)
  • message_en.properites
javax.faces.component.UIInput.REQUIRED = {0} is required. Please input {0}.(´・ω・`)

実行するとこうなる。
f:id:nagamitsu1976:20150730165951p:plain

resouce-bundleと合わせ技でこうなる。
f:id:nagamitsu1976:20150730170101p:plain

最後に、faces-config.xmlのdefault-localeをenに変えるとちゃんと英語になる。
f:id:nagamitsu1976:20150730170405p:plain
な!

しかし、やり方調べるのはしんどいけど、
便利な世の中になったものよのう。
メッセージを定数持ちさせてた大昔が懐かしい。