使用参数从宏访问模板模型

Access template model from a macro using parameter

我有一个带有输入字段的表单(示例已简化):

<input type="text" value="${model.person.age}">

这是按预期工作的,现在我想为此编写一个宏:

 <#macro input path inputType="text">
    <input type="${inputType}" value="${model[path]}">
</#macro>

可以与

一起使用
 <@lib.input "person.age" />

我找到了 ${model[path]} 解决方案 here 但它不适用于我的情况。我正在使用 Freemarker 2.3.21 和 Spring MVC 4.1.0.

你不能像 <@lib.input person.age> 那样只传递值本身吗?无论如何,如果您绝对必须传递未计算的表达式,那么在宏中您可以使用 value="${path?eval}"。当然,它不一定是 "path",它可以是任何一种表达式。 (model[path] 不起作用,因为 [] 中的值是一个变量名,它可以包含任何字符,而不是某种路径表达式。)