如何直接从 ftl 模板调用 FreeMarker 指令?
How to call FreeMarker directive from ftl template directly?
小问题:
是否可以像这样直接从我的 ftl 调用实现 TemplateDirectiveModel
的 FreeMarker 指令 FormatDirective.java
:
<#assign formattedPhoneNumber = "com.myapp.utils.FormatDirective"?new(phoneNumber)>
详细问题:
它是 Spring MVC 网络应用程序,其视图是用 FreeMarker 编写的,根本没有 Java 配置,我只有 FreeMarkerConfigurer
和 FreeMarkerViewResolver
bean 在 root-context.xml
.
我想避免 Java 配置(例如将模板添加到模型或共享变量)。
什么是正确的方法 - 通常 - 让 Java 指令工作?我似乎没有找到完整的教程或示例。
谢谢
您可以将常用的指令和函数收集到类似 my-commons.ftl
:
的内容中
<#assign format = "com.myapp.utils.FormatDirective"?new()>
...
然后在您的模板中:
<#import "my-commons.ftl" as my>
...
<@my.format value=phoneNumber />
小问题:
是否可以像这样直接从我的 ftl 调用实现 TemplateDirectiveModel
的 FreeMarker 指令 FormatDirective.java
:
<#assign formattedPhoneNumber = "com.myapp.utils.FormatDirective"?new(phoneNumber)>
详细问题:
它是 Spring MVC 网络应用程序,其视图是用 FreeMarker 编写的,根本没有 Java 配置,我只有 FreeMarkerConfigurer
和 FreeMarkerViewResolver
bean 在 root-context.xml
.
我想避免 Java 配置(例如将模板添加到模型或共享变量)。 什么是正确的方法 - 通常 - 让 Java 指令工作?我似乎没有找到完整的教程或示例。
谢谢
您可以将常用的指令和函数收集到类似 my-commons.ftl
:
<#assign format = "com.myapp.utils.FormatDirective"?new()>
...
然后在您的模板中:
<#import "my-commons.ftl" as my>
...
<@my.format value=phoneNumber />