我想从 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>
我想从 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>
我认为这应该有效:
<h:outputFormat value="#{msg.yourMessage}">
<f:param value="#{myBean.jobCount}" />
</h:outputFormat>
我发现了这段代码:
#{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);
}
}