1

高度に構成可能なJSf2Webアプリケーションがあります。構成ファイル(クラスパスのconfig.properties)にあるプロパティを、XML構成を使用して宣言されたjsf2.0管理対象ビーブに渡すことができる必要があります。次に例を示します。

<managed-bean>
    <managed-bean-name>myBean</managed-bean-name>
    <managed-bean-class>${config.myBean.class}</managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
    <managed-property>
        <property-name>property1</property-name>
        <value>#{config.myBean.property1}</value>
    </managed-property>
            <managed-property>
        <property-name>property2</property-name>
        <value>#{config.myBean.property2}</value>
    </managed-property>
</managed-bean> 

私の質問は、config.propertiesからこれらの値にアクセスし、JSFにBeanを適切に作成させる方法です。プロパティプレースホルダーを使用して、春にこれを実行できることを知っています。

<context:property-placeholder location="classpath:/config/config.properties" />

JSF 2.0でこれを行う方法はありますか?私がやりたいことをするための別の解決策はありますか?

助けてください !!。

4

1 に答える 1

1

JSF は非常に堅牢なプロパティ ファイル管理メカニズムを提供します。このメカニズムは、Spring が提供するものよりもセットアップに少しだけ関与します。プロパティ ファイル (または JSF 内で呼び出されるリソース バンドル) をロードするには

  1. a の要素の<resource-bundle/>下にa を定義します。<application/>faces-config.xml

    <application>
        <resource-bundle>
           <base-name>
              com.me.resources.messages
           </base-name>
           <var>
               msg
           </var>
       </resource-bundle>
    </application>
    

    where<base-name>は、プロパティ ファイルがあるパッケージ/ディレクトリ構造を<var>指し、アプリケーション内のファイル内のプロパティにアクセスするために使用する参照変数を指します。そのディレクトリ構造が Web アプリ内でアクセスできることを確認してください。私の推奨事項は、通常の Java パッケージに保存し、アプリにバンドルすることです。

  2. マネージド Bean 内でプロパティを次のように参照できるようになりました。

    <h:outputText value="#{msg['messages.error']}" />
    

    そしてマネージドBeanで

     ResourceBundle securityBundle = ResourceBundle.getBundle("com.me.resources.messages");
     String errorMessage = securityBundle.getString("messages.error");
    
于 2012-11-16T04:17:11.613 に答える