Java アプリケーションのプロパティでプレースホルダーを動的に置き換えたいと考えました。お気に入り
WelcomeMessage=Welcome Mr. {firstName} {lastName} !!!
これらの firstName および LastName 変数は、動的に置換する必要があります。同じために速度テンプレート エンジンを使用する必要がありますか? または、同じための他のオープンソース フレームワークはありますか?
ありがとう、マニッシュ
Java アプリケーションのプロパティでプレースホルダーを動的に置き換えたいと考えました。お気に入り
WelcomeMessage=Welcome Mr. {firstName} {lastName} !!!
これらの firstName および LastName 変数は、動的に置換する必要があります。同じために速度テンプレート エンジンを使用する必要がありますか? または、同じための他のオープンソース フレームワークはありますか?
ありがとう、マニッシュ
Java SEのMessageFormatクラスを使用できます。それはあなたが求めることを正確に行うことを可能にします。
あなたの場合、ファイルからロードされたすべてのプロパティが props に含まれていると仮定すると、以下のコード スニペットがそのトリックを実行する必要があります。
MessageFormat.format((String) props.get("WelcomeMessage"), "First", "Last");
以下のように、プロパティ ファイルには名前付きパラメーターではなく、パラメーターのインデックスが必要であることに注意してください。
WelcomeMessage=Welcome Mr. {0} {1} !!!
私の意見では、速度はかなり古くて不快です。これを行うためのより良い方法があります。
JSF 2 を使用する Java Web アプリケーションでは、次のように動作します。
src\main\webapp\WEB-INF\faces-config.xml
...
<resource-bundle>
<base-name>com.mycompany.resources.messages</base-name>
<var>mytext</var>
</resource-bundle>
...
src\main\resources\com\mycompany\resources\messages\mytext.properties
WelcomeMessage = Welcome Mr. {0} {1} !!!
index.xhtml
<h:outputFormat value="#{mytext.WelcomeMessage}" >
<f:param value="#{userSessionBean.first}" />
<f:param value="#{userSessionBean.last}" />
</h:outputFormat>
速度は現時点で最高のツールです。ただし、テンプレートとして使用するファイルの種類によって異なります。
たとえば、MS Word ドキュメントをテンプレートとして使用する場合は、速度クラスを拡張して独自の実装を作成する必要があります。