[Seasar-user:6239] Re: TeedaAjaxでのメッセージ取得について

秋草 森彦 [E-MAIL ADDRESS DELETED]
2007年 2月 19日 (月) 22:20:12 JST


秋草です。
いつもお世話になっております。

説明が足りてないかと思い、より詳細を付け足します。

faces-config.xmlにて、以下のような設定をしています。

    <application>
        <message-bundle>appMessages</message-bundle>
        <locale-config>
            <default-locale>en</default-locale>
            <supported-locale>ja</supported-locale>
        </locale-config>
    </application>

これにより、Teeda内でAppMessagesの情報を管理することになっていると思われます。
管理している内容は:

  1. MessageBundleのファイルの名前が appMessages であること。
  2. LocaleのDefaultが en であること。
  3. SupportしているLocaleが ja であること。

これらの情報はFacesContextから取得できます。


この管理している内容をTeedaAjaxで実行されるPojoでも利用して
Messageを取得したいと考えております。

Localeに関しては重要で、何がDefaultで何をSupportしているのか
の設定を重複させたくないのです。(運用中に追加されていく可能性あり)

faces-config.xmlの設定は、Doltengで自動生成されたもので、
ここで一元管理されているものとして考えていたのですが、
そういう位置づけのものではなかったでしょうか?
(勝手にそう思い込んでしまいました。違っていればすいません...)

もしそうならば逆に、Teedaが利用するfaces-config.xmlにおける
message-bundleの設定を「Project独自の外部File」などから取得できるように
したいと考えます。

それとも、FacesServlet経由のRequestとAjaxServlet経由のRequestでは、
全くの作りをするべきでしょうか...(違うFrameworkと考えるべきか)
できれば、「TeedaContext」というようなFaces経由かAjax経由か
を意識しないContextがあればうれしいかなと思った次第です。
(共通Classなどで、必ずFaces経由かAjaxServlet経由かを意識しないと
 いけないもので...)



現状、FacesContext.getCurrentInstance()がnullの場合は、
"appMessages"とLocaleのDefaultをハードコードしてMessageを取得しております。
国際化考慮としてはもうちょい精査してなければなりませんが、
動作はしていますので、特にTeedaとして何もActionが無くても
何とかはなりそうではあります。

ただ、こういう意見もあるということを認識して頂ければ幸いです。

以上です。
+++++++++++++++++++++++++++++++++++++++++
(株)ビルドシステム
  医療システム開発部
    秋草  森彦
  TEL : 03(3226)3782
  FAX : 03(3226)3775
  WebURL : http://www.buildsystem.jp/
+++++++++++++++++++++++++++++++++++++++++





Seasar-user メーリングリストの案内