我知道如何使用带有1个modelAttribute的表单但是如何在同一个表单中设置2个模型属性?
我有:
<sf:form id="details" action="/updateuser" method="POST" modelAttribute="updateuser">
<sf:input type="text" name="firstName" path="firstName"/></br>
<sf:input type="text" name="lastName" path="lastName" /></br>
<sf:input type="text" name="email" path="email" /><sf:errors path="email" cssClass="error"></sf:errors> </br>
<sf:input type="text" name="facebook" path="facebook" /> </br>
<sf:input type="text" name="twitter" path="twitter" /> </br>
</sf:form>
firstName
lastName
和email
适用于modelAttribute="updateuser"
,但modelAttribute
和facebook
我该如何实现?
谢谢!
编辑: 没有包装类,是不是还有其他方法可以做到这一点?有关更多信息,我有:
class User {
private String firstName;
private String lastName;
private String email;
}
class SocialMedia {
private String facebook;
private String twitter;
}
答案 0 :(得分:1)
您无法将多个对象附加到<form>
。但是,您可以为表单创建显式模型类并将其附加。
class UpdateUserFormModel {
private Updateuser updateuser;
private Facebook facebook;
private Twitter twitter;
}
您可以使用.
运算符
<sf:input type="text" name="firstName" path="updateuser.firstName"/></br>
<sf:input type="text" name="facebook" path="facebook" /> </br>
答案 1 :(得分:0)
不能为一个表单设置多个模型属性,但您可以使用包装器来包装模型。
class Wrapper {
private Class1 c1;
private Class2 c2;
....
//getter&setters
}
但是,您可以使用
将多个对象绑定到同一个模型model.addObject("objectName",object);
并通过
访问您网页中的对象${objectName.name }