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

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


但是如何在春季视图中同时通过两者或更多

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


因为它只允许我传递一个命令。然后如何将所有require命令传递给它们。

最佳答案

只需将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在下面的回答中提到的那样。

10-06 11:21