Freemarker:从模板文件 (*.ftl) 调用静态 util 方法

Freemarker: call a static util method from a template file (*.ftl)

在 Freemarker FTL 文件中,我想调用 StringUtils.capatilize(myString)。例如:

<p>You selected ${selectionString}.</p>
<p>${StringUtils.capatilize(selectionString)} is great.</p>

我能以某种方式导入org.apache.commons.lang3.StringUtils吗?

您不能 #import class,只能使用其他模板。

请注意,只要将 objectWrapper.getStaticModels() 作为 statics 添加到 Configuration 或将其添加到数据模型中。

首先,将这些代码添加到您的 Controller:

BeansWrapper wrapper = new BeansWrapper(new Version(2,3,27));
TemplateModel statics = wrapper.getStaticModels();
model.addAttribute("statics", statics);

然后,在您的 .ftl 文件中,像这样定义 class:

<#assign YourUtilClass=statics['com.springboot.util.YourUtilClass']>

(['']中包含的路径为class'路径)
最后,您可以像这样访问您的静态方法:

${YourUtilClass.yourMethod(someParams)}