将代码freemarker执行成freemarker ftl
Posted
技术标签:
【中文标题】将代码freemarker执行成freemarker ftl【英文标题】:Execute code freemarker into a freemarker ftl 【发布时间】:2021-09-13 13:15:42 【问题描述】:我正在尝试在 freemarker ftl 中执行 freemarker 代码,我解释一下我所拥有的:
我们有一个带有 Spring 的模块,可以解决 FTL 视图并打印其内容,即使在这里一切正常,但有时我们希望在该视图中引入更多代码,我们需要这样做而无需再次部署模块,这就是我们在 String 变量中输入 Freemarker 代码并通过模型将该变量传递给视图的原因。但是问题出现在这里,我不知道如何管理那个变量,我最多只能画$myVar,但是Freemakrer代码看起来好像是一个简单的html(即Freemarker不执行就这样)。
有没有办法对具有 Freemarker 代码的变量进行某种包含?
【问题讨论】:
【参考方案1】:我们对视图中的动态部分做类似的事情。您可以使用interpret
和<@var>
来实现这一点。类似的东西
<#assign varTempl = myVar?interpret >
<@varTempl />
第一行会解析你的模板,第二行会打印出来。
【讨论】:
有效!一个问题,我们有自己的变量(我们通过 model.setAttribute 传递),我们在该变量的代码中使用这些变量,是否有可能将所述对象传递给该句子? 到哪句话?整个模型可供解释器使用,因此任何东西都可用。 你在世界上是绝对正确的,它完美地工作并且可以访问模型的所有数据,我检查了代码并且它包含一些错误,但在解决它之后我看到了我需要!非常感谢! 请注意,您实际上并不需要为此创建一个变量,因为您可以只写<@myVar?interpret />
。以上是关于将代码freemarker执行成freemarker ftl的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot2 系列教程Spring Boot 整合 Freemarker
我没有将 freemarker 用于 struts2,但我看到 freemarker 生成了很多日志记录