如何解决在 Freemarker 中,如何访问模板文件中的自定义属性?
在 Freemarker 模板文件中,如何访问使用模板实例上的 freemarker.core.Configurable#setCustomAttribute(java.lang.String,java.lang.Object)
方法设置的属性?
或者如果这是不可能的,我如何在处理有效负载之前将一些变量推送到模板中,我可以在模板文件中访问?
干杯, 凯
解决方法
自定义属性用于在相反方向传播值。您无法在模板中获取自定义属性,只能在 #ftl
标头中设置它们。例如,模板可以在那里指定其输出的 MIME 类型,然后调用模板的内容可以基于此设置 HTTP 响应的内容类型。
如果您的数据模型不是特定于您调用的模板,并且您只需要将一些额外的变量传递给该模板,那么这是一个需要在数据模型级别解决的问题。就像您可以使用 TemplateModelUtils.wrapAsHashUnion(ObjectWrapper,java.util.List<?>)
组合一个新的数据模型,并将其传递给模板。
或者,您可以像往常一样获取 Template
,然后使用 Template.createProcessingEnvironment
创建其运行时环境,在 Environment
中设置变量,然后调用 Environment.process()
。这就像在实际开始运行模板之前从模板外部调用一些 #assign
-s。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。