如何在 spring mvc 中使用 freemarker 消息?

发布于 2024-09-07 22:31:06 字数 161 浏览 5 评论 0原文

在 .jsp 中,我将使用:

<fmt:message key="welcome.title"/>

显示 messages.properties 文件中的消息。

我该如何使用 freemarker 来做到这一点?

In a .jsp I would use:

<fmt:message key="welcome.title"/>

to display a message from my messages.properties file.

How would I do this with freemarker ?

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

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

发布评论

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

评论(3

若水微香 2024-09-14 22:31:06

导入Spring宏

<#import "/spring.ftl" as spring/>

然后

<@spring.message "yourMessageKeyGoesHere"/>

但是你需要注册ResourceBundleMessageSource

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="messages"/>
</bean>

记住MessageSource必须被调用messageSource

Import Spring Macro

<#import "/spring.ftl" as spring/>

Then

<@spring.message "yourMessageKeyGoesHere"/>

But you need to register ResourceBundleMessageSource

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="messages"/>
</bean>

Keep in mind MessageSource must be called messageSource

离旧人 2024-09-14 22:31:06

@Blankman

不,您不必在每个模板中手动导入它。您可以在 freemarker 设置中设置 auto_import 属性,如下所示。

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
   ...

   <property name="freemarkerSettings">
        <props>
            <prop key="auto_import">spring.ftl as spring</prop>
        </props>
   </property>
</bean>

@Blankman

No, you don't have to import this manually in each template. You can set an auto_import property in your freemarker settings as showed below.

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
   ...

   <property name="freemarkerSettings">
        <props>
            <prop key="auto_import">spring.ftl as spring</prop>
        </props>
   </property>
</bean>
苏别ゝ 2024-09-14 22:31:06

其他人的答案都很好。为那些使用它的人提供 java 配置作为示例。

 @Bean(name = "freemarkerConfig")
public FreeMarkerConfigurer freemarkerConfig() {
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
    configurer.setTemplateLoaderPaths("/WEB-INF/views/", 'classpath:/templates');
    Map<String, Object> map = new HashMap<>();
    map.put("xml_escape", new XmlEscape());
    configurer.setFreemarkerVariables(map)
    def settings = new Properties()
    settings['auto_import']  =  'spring.ftl as spring,layout/application.ftl as l,/macros/meh.ftl as meh'
    configurer.setFreemarkerSettings(settings)
    log.info "returning freemarker config"
    return configurer;
}

Others are fine answers. Providing java config as example for those that use that.

 @Bean(name = "freemarkerConfig")
public FreeMarkerConfigurer freemarkerConfig() {
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
    configurer.setTemplateLoaderPaths("/WEB-INF/views/", 'classpath:/templates');
    Map<String, Object> map = new HashMap<>();
    map.put("xml_escape", new XmlEscape());
    configurer.setFreemarkerVariables(map)
    def settings = new Properties()
    settings['auto_import']  =  'spring.ftl as spring,layout/application.ftl as l,/macros/meh.ftl as meh'
    configurer.setFreemarkerSettings(settings)
    log.info "returning freemarker config"
    return configurer;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文