用于对象集合的表单的Freemarker语法(Spring 3 MVC)

时间:2010-11-17 18:37:22

标签: spring-mvc freemarker

我有一个命令bean(FooList),它有一个属性,它是一个集合(ListFoo个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}在循环内部工作。)

有人能指出我正确的方向吗?

感谢。

3 个答案:

答案 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]