Java 如何从controller传递多个模型对象,以及如何在SpringMVC中将所有作为命令对象传递到form:form?
这个场景就像我想从控制器中传递多个模型对象,我可以这样实现Java 如何从controller传递多个模型对象,以及如何在SpringMVC中将所有作为命令对象传递到form:form?,java,spring-mvc,Java,Spring Mvc,这个场景就像我想从控制器中传递多个模型对象,我可以这样实现 model .addAttribute(“person”, new Person()); model.addAttribute(“address”, new Address()); 但是如何在SpringView中同时传递这两个或更多 <form:form action=”registration” command=”person”> 因为它只允许我传递一个命令。然后,如何将所有require命令传递给他们。只需
model .addAttribute(“person”, new Person());
model.addAttribute(“address”, new Address());
但是如何在SpringView中同时传递这两个或更多
<form:form action=”registration” command=”person”>
因为它只允许我传递一个命令。然后,如何将所有require命令传递给他们。只需将
person
和address
添加到名为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”>
变成
<form:input path="person.firstName" />
另一个更优雅的选择是将
地址
括在个人
中,并将个人
作为命令公开。正如@Seabook在下面的回答中提到的。只需将person
和address
添加到一个名为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”>
变成
<form:input path="person.firstName" />
另一个更优雅的选择是将
地址
括在个人
中,并将个人
作为命令公开。正如@Seabook在下面的回答中提到的。您好,非常感谢您的快速回答及其有效性。但我还是想知道,spring有没有办法让我们传入多个命令对象?没有。这与命令模式背道而驰!请注意,当您使用model.addAttribute
向模型添加属性时,JSP中提供了所有这些变量。您只需使用EL即可访问它们。@adarshr我想知道我的第二个实体是否有一个列表,该列表是第一个实体的一部分,如何将第二个实体对象传递给表单?您好,非常感谢您的快速回答及其工作。但我还是想知道,spring有没有办法让我们传入多个命令对象?没有。这与命令模式背道而驰!请注意,当您使用model.addAttribute
向模型添加属性时,JSP中提供了所有这些变量。您只需使用EL即可访问它们。@adarshr我想知道我的第二个实体是否有一个列表,它是第一个实体的一部分,我如何将第二个实体对象传递给表单?