如何动态地将参数传递给资源包中的消息

发布于 2024-09-12 13:43:44 字数 303 浏览 8 评论 0原文

我想从 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>

I would like to retrieve the message information from the i18n bundle (messages.properties in seam), but I am not sure how to pass the declare / pass the jobCount variable dynamically in my xhtml

The existing code looks like this.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一抹淡然 2024-09-19 13:43:44

我认为这应该有效:

<h:outputFormat value="#{msg.yourMessage}">
  <f:param value="#{myBean.jobCount}" />
</h:outputFormat>

I think this should work:

<h:outputFormat value="#{msg.yourMessage}">
  <f:param value="#{myBean.jobCount}" />
</h:outputFormat>
苍白女子 2024-09-19 13:43:44

我找到了这段代码:

#{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);
    }
}

I found this fragment of code:

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

I think this is what you're searching for. Messages and placeHolders

Otherwise you can use string concatenation (ugly) if it's a static message:

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

Or if it's a dynamic message and you're using h:message

Use this syntax in the message properties:

myMessage= User has been assigned {1} jobs

And then when you create the message in the 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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文