struts2 中的 freemarker 配置

freemarker configuration in struts2

我正在使用带有 struts 2.3.24 的 freemarker 2.3.21,我需要为 struts.

配置(自定义)freemarker

为什么?

因为在 FTL 文件中我需要将默认数字格式更改为 " 计算机" 格式

问题

数字以默认格式打印,例如,12345 在 FTL 文件中将打印为 12,345,因此当我需要重新使用时,此数字将变为字符串。

基本解决方案 我在 java 程序中设置了数字格式并测试了正常工作的解决方案,该解决方案适用于使用以下对象处理的 ftl。

Configuration cfg = new Configuration(Configuration.VERSION_2_3_21);
        cfg.setClassForTemplateLoading(FTLUtility.class, ftlRootUrl);
        cfg.setNumberFormat("computer"); // this will show the number without formatting 

但是在 struts 的情况下,它使用了我不知道该配置存在于何处的其他配置。我需要定制那个。

我知道我们可以使用 ${someNumverVar?c} 来解决我的问题,但我不想像这样替换每个变量。

如果您有任何想法或建议,请随时与我分享。

根据Struts文档,您可以使用freemarker.properties文件指定FreeMarker配置设置,应该是"in the classpath"。 (可以找到设置列表in the FreeMarker API docs of Configuration.setSetting

顺便说一句,不要使用 2.3.21;那是一个很旧的版本。 (我指的不是 incompatibleImprovements,而是 jar 的版本。)