2013-11-23 4 views
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. Который, как я понимаю, означает, что весна не нашла, где привязать форму.

ответ

0

Нет, это невозможно. Значение, которое вы передаете атрибуту commandName, является ключом, и оно не разрешается, как нормальное выражение EL или SpEL. Он используется напрямую. Другими словами, с

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

Spring будет выглядеть для атрибута модели под названием products[0] которой не сыщешь.

Альтернативой является установка первого элемента списка в модели непосредственно с помощью ключа, который вы будете использовать в jsp.

Или вы можете использовать JSTL, получить первый элемент в списке и создать элемент HTML <form> самостоятельно.

+0

Спасибо, Сотириос! –

Смежные вопросы