5

i18nバンドル(seamのmessages.properties)からメッセージ情報を取得したいのですが、xhtmlで宣言/jobCount変数を動的に渡す方法がわかりません。

既存のコードは次のようになります。

<s:decorate template="/layout/panel-name.xhtml">
    <ui:define name="label">User has been assigned #{jobCount} jobs</ui:define>
</s:decorate>
4

2 に答える 2

12

私はこれがうまくいくと思います:

<h:outputFormat value="#{msg.yourMessage}">
  <f:param value="#{myBean.jobCount}" />
</h:outputFormat>
于 2010-08-03T10:36:10.557 に答える
2

私はこのコードの断片を見つけました:

#{interpolator.interpolate(messages['myMessage'],jobCount)}

これがあなたが探しているものだと思います。メッセージとplaceHolders

それ以外の場合、静的メッセージの場合は文字列連結(醜い)を使用できます。

<s:decorate template="/layout/panel-name.xhtml">
    <ui:define name="label">#{messages['myMessage']} #{jobCount}</ui:define>
</s:decorate>

または、動的メッセージであり、h:messageを使用している場合

メッセージプロパティで次の構文を使用します。

myMessage=ユーザーに{1}ジョブが割り当てられました

そして、Beanでメッセージを作成するとき

@Name("myBean") 
public class Bean {
    @In(create = true) FacesMessages facesMessages;
    @In Map messages;

    public String action() {
         // Action here
         facesMessages.add(messages.get("myMessage"), jobCount);
    }
}
于 2010-08-02T08:09:32.187 に答える