我有一个命令bean(FooList
),它有一个属性,它是一个集合(List
个Foo
个bean。)
我正在尝试创建一个可以同时编辑所有Foo
的表单。我已经找到了许多使用JSP如何做到这一点的例子,但我在将这些翻译成Freemarker语法时遇到了麻烦。
在我的Freemarker模板中,我可以轻松地遍历集合:
[#list fooList.foos as foo]
...
[/#list]
我还可以通过索引引用特定的Foo
:
[@spring.bind "fooList.foos[0].name" /]
<input type="text" name="${spring.status.expression}" value="${spring.status.value?default('')}"/>
但是,我还没有弄清楚如何同时做两件事,将所有Foo
绑定到表单元素。
这是一次失败的天真尝试:
[#list fooList.foos as foo]
[@spring.bind "fooList.foos[foo_index].name" /]
...
[/#list]
(就其本身而言,${foo_index}
在循环内部工作。)
有人能指出我正确的方向吗?
感谢。
答案 0 :(得分:3)
刚遇到同样的问题。这对我有用:
[#list fooList.foos as foo]
<#assign item>fooList.foos[${foo_index}].name</#assign>
[@spring.bind item /]
...
[/#list]
答案 1 :(得分:1)
尝试,
[#list fooList.foos as foo]
[@spring.bind "foo.name" /]
...
[/#list]
根据the list directive上的freemarker文档,该示例中的foo将逐个引用列表中的每个项目。
答案 2 :(得分:0)
我认为应该如下:
[#list fooList.foos as foo]
[@spring.bind "fooList.foos[" + foo_index + "].name" /]
...
[/#list]