如何从控制器传递多个模型对象以及如何将所有作为命令对象传递到表单中:form in spring mvc?

时间:2013-08-15 07:12:09

标签: java spring-mvc

场景就像我想从控制器传递多个模型对象,我可以实现,

 model .addAttribute(“person”, new Person());
 model.addAttribute(“address”, new Address());

但是如何在春天视图中传递它们或更多

<form:form action=”registration” command=”person”>

因为它只允许我传递一个命令。然后如何通过他们的。

传递所有require命令

1 个答案:

答案 0 :(得分:4)

只需将personaddress添加到名为personDetails的包络对象中,然后将其传递给表单。

class PersonDetails {
    private Person person;
    private Address address;

    ...
}


PersonDetails personDetails = new PersonDetails();
personDetails.setPerson(new Person());
personDetails.setAddress(new Address());

model.addAttribute(“personDetails”, personDetails);


<form:form action=”registration” command=”personDetails”>

一旦你这样做,你就必须适当地修改path

<form:input path="firstName" />

成为

<form:input path="person.firstName" />

其他更优雅的选项是将Address括在Person中,并将Person作为命令公开。正如@Seabook在下面的回答中提到的那样。