6

关于FreeMarker,是否可以指示它默认将所有数字视为“计算机”数字?

我试图申请

cfg.setSetting(Configurable.NUMBER_FORMAT_KEY, "computer");

或者

cfg.setNumberFormat("computer");

配置对象,但结果不是预期的。相信这是文档的方法,有什么问题吗?

4

4 回答 4

2

您指定的数字格式必须是java.text.DecimalFormat支持的。您现在可以做的最接近的事情是将语言环境切换到en_US(并更好地确保它不使用摸索;请参阅http://freemarker.org/docs/app_faq.html#faq_number_grouping)。或者,当然,你可以?c全部写 -s,但我想这就是你想要避免的。

于 2013-01-30T22:09:07.687 回答
1

尝试:

cfg.setNumberFormat("#");

它对我有用

于 2018-07-09T16:44:28.947 回答
0

根据文档Configuration,可以在 Freemarker对象上设置它。

典型的功能弹簧上下文初始化:

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPaths">
        <list>
            <value>classpath:META-INF/templates</value>
        </list>
    </property>
    <property name="freemarkerSettings">
        <props>
            <prop key="number_format">computer</prop>
        </props>
    </property>
    <property name="defaultEncoding" value="UTF-8" />
</bean>

<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="prefix" value="" />
    <property name="suffix" value=".ftl" />
    <property name="cache" value="true" />
    <property name="contentType" value="text/html;charset=UTF-8" />
    <property name="requestContextAttribute" value="request" />
</bean>

请注意,number_format(或新版本 freemarker 的 numberFormat)设置为FreeMarkerConfigurer.

对于您的问题...我的猜测是您将其设置为错误的配置对象或范围。

于 2016-05-12T09:29:30.233 回答
0

它在最新版本中工作,我可以在我的 Spring Boot 应用程序中执行此操作

freeMarkerConfigurer.getConfiguration().setNumberFormat("computer");

于 2019-02-13T14:51:07.770 回答