Zdravím konferenci
problém:
nevím , jak správně uvést cestu v tagu <spring:bind path=" "/> na referenci
typu collection.
Budoucí knihovnická aplikace umožňuje vložit novou knihu. Třída Book je
obyčejná JavaBeana s referencí na List autorů:
public class Book {
private Integer id;
private String title;
private List<Author> authors = new ArrayList();
//getter/setter
}
public class Author {
private Integer id;
private String firstName;
private String lastName;
//getter/setter
}
Formulář je odeslán na kontroler, který rozšiřuje třídu SimpleFormController.
<bean name="newBookController"
class="cz.eon.controller.manager.NewBookController">
<property name="commandName" value="book"/>
<property name="commandClass" value="cz.eon.model.Book"/>
<property name="formView" value="bookForm"/>
<property name="successView" value="books"/>
<property name="bookDao" ref="bookDao" />
<property name="validator">
<bean class="cz.eon.validator.BookValidator"/>
</property>
</bean>
Ve formuláři "svazuji" pole s textovými poli takto, např:
<spring:bind path="book.title">
<input type="text" name="${status.expression}" value="<c:out
value="${status.value}" />" />
</spring:bind>
Problém ale nastává pokud chci svázat referenci na autora, např:
<spring:bind path="book.authors.firtsName">
<input type="text" name="${status.expression}" value="<c:out
value="${status.value}" />" />
</spring:bind>
vyhodí to chybu.
Prosím o pomoc, jak lze toto ve Springu řešit.
Našel jsem řešení, kde se nejdříve do seznamu vloží prázdné objekty a potom se
iteruje:
http://mattfleming.com/node/134
přijde mi to škaredé a navíc potřebuji autory vytvářet dynamicky. Kniha může
mít 1 až mnoho autorů.
Nehodí se mi v předstihu vytvořit pevný počet autorů. Ve Struts2 toto není
problém, nejspíš, ale někde dělám chybu.
Za pomoc děkuji
Tomáš Jurman