当前位置: 首页 > 知识库问答 >
问题:

我的FreeMarker方法返回一个带有${variable}的字符串--如何强制FreeMarker解析它?

田谦
2023-03-14
dataModel.put("myMethod", myClassInstance);
dataModel.put("username", "John Doe");
<p>${myMethod()}</p>
<p>Hello ${username}</p>

由于我的数据模型中实际上有一个用户名值,所以我希望输出为:

<p>Hello John Doe</p>

如何告诉FreeMarker解析myMethod()的结果?我试了两个?eval和?解释,但都没有完成我想要的。在FreeMarker中这可能吗?

共有1个答案

慕容越泽
2023-03-14

您需要从字符串中删除${}才能使用?eval。从方法中以字符串形式返回username,并使用?eval或从.vars获取变量。

<p>${classInstance.myMethod()?eval}</p>

<p>${.vars[classInstance.myMethod()]}</p>

如果您不仅想从该方法返回变量名,还想返回带有表达式的字符串(例如“hello${username}”),那么请使用?interfly

<#assign inlineTemplate = classInstance.myMethod()?interpret>
<@inlineTemplate />
 类似资料:
  • 我正在使用与Freemarker启动的Spring Boot。 给定以下字符串: 我试图对这个字符串执行一些验证,以确保它包含正确的Freemarker语法。 ----提示:如果已知失败的表达式在法律上引用了有时为null或缺少的内容,可以指定默认值,如myoptionalvar!mydefault,或者使用<#If myoptionalvar??>when-present<#else>when-

  • 问题内容: 好的,这就是我的for子手游戏代码,我唯一要做的就是让我的程序将其中一个单词随机化,这应该在方法中成功完成。但是我唯一的问题是让String变量 “ word” 返回到主类(在主类中的所有 “ word” 变量下面都有错误)。 如果我可以通过这种方法获得另一种帮助,或者从列表中产生随机单词的另一种方法,那将是惊人的。 问题答案: 在Java中,参数是通过值而不是引用传递的。因此,您不能

  • 我们有一个基于泽西的web应用程序。我们将Apache Freemarker用于前端网页。我已经创建了一个servlet过滤器,并将其添加到web.xml中。这个过滤器拦截所有的http请求。在该过滤器的doFilter方法中,我从请求对象获取HTTPSession并设置一个属性值。说“Myval”。 尝试了以下访问MyVal的方法: ${request.myval} ${myVal}

  • 返回类似于:。我猜与的参数有关。我不明白是什么意思,使用的时间单位是什么?在这种情况下,它可能是微秒,但我也看到和作为单位;但是,我在文件中找不到解释。