【问题标题】:getting error with freemarker template integration with spring internationlizationfreemarker 模板与 spring 国际化集成时出错
【发布时间】:2017-11-29 16:35:46
【问题描述】:

我正在使用 freemarker 模板生成电子邮件。我将freemarker与spring结合使用。我很难通过参数替换来实现国际化。我让它为一个参数替换工作。 示例:

message.hello = 你好,{0}

在调频模板中 我有类似的东西

但是,我无法弄清楚我们如何为多个参数替换做到这一点。

message.greet = 您好 {0},欢迎来到 {1}

如何在模板中表示它? 当我尝试以下操作时:

它不起作用。你能帮忙吗? 问候

【问题讨论】:

    标签: templates internationalization freemarker


    【解决方案1】:

    查看Spring源代码中的spring.ftl,该宏定义为<#macro messageArgs code, args>${springMacroRequestContext.getMessage(code, args)}</#macro>,这是有问题的,因为org.springframework.web.servlet.support.RequestContext中的getMessage有几个重载,你想调用getMessage(String code, Object[] args)getMessage(String code, List<?> args) .所以你想要这个:

    <@spring.messageArgs "message.greet", [name, place] />
    

    请注意,因为还有getMessage(String code, String defaultValue) 重载,所以即使您只有1 个参数,您也需要使用[],否则它将是默认值。

    【讨论】:

      猜你喜欢
      • 2021-09-10
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多