将spring form绑定到list元素

时间:2013-11-23 16:18:47

标签: java spring jsp spring-mvc spring-form

是否可以将spring form:form绑定到list元素?我试过这种方式。

<form:form commandName="products[0]">
   <form:input path="name"/>
</form:form>

<form:form commandName="products0">
   <form:input path="name"/>
</form:form>

弹簧控制器中填充了products列表。

@RequestMapping(method = RequestMethod.GET)
public String getAll(Map<String, Object> map) {
    map.put("products", productService.getAll());
    return "products";
}

收到:java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'products[0]' available as request attribute。据我所知,春天还没有找到绑定表格的地方。

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。传递给commandName属性的值是一个键,它不像正常的EL或SpEL表达式那样被解析。它直接使用。换句话说,用

<form:form commandName="products[0]">
   <form:input path="name"/>
</form:form>

Spring将查找一个名为products[0]的模型属性,它将找不到它。

另一种方法是使用您将在jsp中使用的密钥直接将列表的第一个元素放在模型中。

或者你可以使用JSTL,获取列表中的第一个元素并自己创建一个HTML <form>元素。