struts2中的freemarker配置

Posted

技术标签:

【中文标题】struts2中的freemarker配置【英文标题】:freemarker configuration in struts2 【发布时间】:2018-05-16 23:39:29 【问题描述】:

我正在使用带有 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 来解决我的问题,但我不想像这样替换每个变量。

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

【问题讨论】:

【参考方案1】:

根据 Struts 文档,您可以使用 freemarker.properties 文件指定 FreeMarker 配置设置,该文件应位于“类路径中”。 (设置列表可以找到in the FreeMarker API docs of Configuration.setSetting)

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

【讨论】:

freeemarker 版本不是问题...我出于特定原因使用它...包括类路径中的 freemarker.properties 解决了问题:P

以上是关于struts2中的freemarker配置的主要内容,如果未能解决你的问题,请参考以下文章

我没有将 freemarker 用于 struts2,但我看到 freemarker 生成了很多日志记录

无法正确解析FreeMarker视图

在Struts2中的s:form,为啥我将theme设为ajax会报错?项目中也有freemarker.jar包啊

Struts2 + Freemarker + DisplayTag:如何使其工作

Struts2 + Sitemesh + Freemarker 不起作用

FreeMarker 模板错误!在struts2中