这个错误通常在使用freemarker的时候出现,可以通过以下两种方式解决。
${myString?hash}
这会将 myString 转换为一个 hash,避免报错。
举个例子,以下代码中,模型中的 myMap 被设置为字符串类型,而不是 hash 类型:
Map myMap = new HashMap();
myMap.put("firstName", "John");
myMap.put("lastName", "Doe");
model.put("myMap", myMap.toString());
在模板中,应该使用 myMap?eval 告诉freemarker将字符串转换为hash类型。示例如下:
<#assign map=myMap?eval>
${map.firstName} ${map.lastName}