2011-07-12 14 views
1

サーバを再起動せずにJSF2.0(Primeface)ツールチップを動的に更新する必要があります。サーバを再起動せずにJSF2.0(Primeface)ツールチップを動的に更新する方法

意味は、実行中のアプリケーションのツールチップ(プロパティファイルからのatm)をサーバーの再起動を必要とせずに変更できる方法を見つける必要があります。

私たちは、WebSphereを実行し、非爆発EAR(おそらく爆発戦争を展開するために説得することができます)

任意のアイデアやヒントをください展開しています。ありがとう

答えて

4

p:toolTipコンポーネントのvalue属性は、EL式またはリテラルテキストである必要があります。通常、f:loadBundleタグのvar属性を使用して宣言されたリソースバンドルを、ツールチップのEL式で参照します。

basename属性を使用して宣言された基底のリソースバンドルは、プロパティファイル自体によってバックアップすることができます(この場合、プロパティファイルをクラスパス上の適切なディレクトリに配置する必要があります)。プロパティファイル(コンテナの外にある)、またはデータベースやストアを読み込むことができるResourceBundleの実装。 (ES)あなたがあなた自身のResourceBundleクラスをロールバックする必要があります、

<f:loadBundle var="msg" basename="propfile_location" /> 

シンプルな言葉で

<f:loadBundle var="msg" basename="fully qualified class name of the ResourceBundle class" /> 

へ:

このため、として定義されている既存のものから、既存のEL式を変更することができますさまざまなロケールをサポートします。 ResourceBundlesを参照するEL式を評価するときはResourceBundleELResolver実装によって呼び出されるため、ResourceBundle.getObject(java.lang.String)メソッドをオーバーライドする必要があります。

さらに、ResourceBundleのResourceBundle.getObject(java.lang.String)実装が常に再フェッチし、指定されたキーに対応する値を返すようにする必要があります。これを保証しないと、特に初期値をキャッシュしている場合に、リソースバンドルによって取得された初期値が後続の呼び出しで返される可能性があります。アプリケーションの再デプロイメントなしにプロパティファイルの内容を変更できる展開されたWARファイルをデプロイしても、この動作が発生する可能性があります。そのため、値をキャッシュしないカスタムのResourceBundle実装を使用することが重要です。

+0

ありがとうございました – Shahzeb

関連する問題