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

时间:2016-08-22 14:47:44

标签: freemarker

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

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

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

['']中包含的路径是类的路径)
最后,您可以像下面这样访问您的静态方法:

${YourUtilClass.yourMethod(someParams)}

答案 1 :(得分:2)

您不能#import一个班级,只能使用其他模板。

请注意,只要将#assign StringUtils=statics['org.apache.commons.lang3.StringUtils'] objectWrapper.getStaticModels()添加到statics的共享变量集中,您就可以使用Configuration获得类似的结果,或者添加它到数据模型。