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

时间:2015-01-07 00:12:03

标签: freemarker

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

<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。

1 个答案:

答案 0 :(得分:0)

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