5

我想从 i18n 包中检索消息信息(接缝中的 message.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)}

我想这就是你正在寻找的。消息和占位符

否则,如果它是静态消息,您可以使用字符串连接(丑陋):

<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 回答