0

是否可以将弹簧绑定form:form到列表元素?我试过这种方法。

<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。据我了解,这意味着 spring 还没有找到绑定表单的位置。

4

1 回答 1

0

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

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

Spring 将寻找一个products[0]它找不到的模型属性。

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

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

于 2013-11-23T16:37:23.887 回答