如何从 Freemarker 模板中获取特定的地图值

How to get specific map values from inside Freemarker template

我需要将 Map<String,String> 传递到 Freemarker 模板中,然后在模板内部,挑选我从注入映射中提取的值。所以像:

// This map will have a 'fizz' key with a String value of 'buzz'.
Map<String,String> mymap = getSomehow();

Configuration cfg = new Configuration();
Template template = cfg.getTemplate("mytempl.ftl");
StringWriter sw = new StringWriter();

template.process(mymap, sw);

然后,模板 (mytempl.ftl):

<h1>${mymap[fizz]}</h1>

但是当我 运行 这个时,我得到:

FreeMarker template error: The following has evaluated to null or missing: ==> mymap

知道我哪里出错了吗?

process 方法的第一个参数是模板的 "context"。因此,要从地图中选择特定值,您可以使用 <h1>${fizz}</h1>.