0

ResourceBundle からロードするときに、EL 式を含むリソース メッセージを解決する必要があります。基本的に、テキストを含む多数のプロパティ ファイルがあります。一部のテキストは次のようになります。

welcomeText=ようこそ #{userbean.name}

現在、これが機能していることを確認できる唯一の方法は、次のように言う代わりに、カスタム taglib を実装することです。

<f:loadBundle var="messages" basename="application.messages"/>

私は使用する必要があります

<mytaglib:loadBundle var="messages" basename="application.messages"/>
#{messages.welcomeText}

ユーザー名「User1」を持つユーザーを指定すると、これは出力する必要があります

Welcome User1

私の実装では、handleGetObject をオーバーライドするカスタム ResourceBundle クラスを使用し、ELResolver を使用して変数などを解決します。提案?すでに利用可能な実装?

よろしくお願いします。

4

1 に答える 1

1

パラメータ化されたテキストを表示するには、むしろ<h:outputFormat>andを使用してください。これはAPI<f:param>によって支えられており、API の javadoc で説明されているのと同じルールが適用されます。MessageFormat

例えば

welcomeText=Welcome {0}

<h:outputFormat value="#{messages.welcomeText}">
    <f:param value="#{userbean.name}" />
</h:outputFormat>

そこにあります:)

于 2010-04-29T21:33:53.017 に答える