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

标签 java spring-mvc

这种情况就像我想从 Controller 传递多个模型对象,我可以这样实现,

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

但是如何在 Spring View 中传递它们两个或多个

<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”>

完成此操作后,您必须适当修改路径

<form:input path="firstName" />

变成

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

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

关于java - 如何从 Controller 传递多个模型对象以及如何将所有作为命令对象传递到表单 :form in spring mvc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18247896/

相关文章:

java - 一对多映射关系未正确保存数据

java - 从ArrayList中获取数据

java - Spring 安全: Expecting to only find a single bean for type interface org. springframework.security.authentication.AuthenticationManager

java - 如何在没有持久性 xml 的情况下配置 hibernate 属性

java - 测试中未抛出 MaxUploadSizeExceededException

java - 小程序图像缓存

移动设备和 API 之间的 Java 集成测试。最好的方法是什么?

java - 如何使用 GNU Prolog for Java 运行包含列表作为参数的谓词?

Spring Boot 响应已提交资源请求异常

rest - 在 POST 操作期间在 Jersey 中捕获 SAXNotRecognizedException