混淆了spring MVC JSP页面绑定

时间:2011-03-06 10:59:44

标签: java jsp data-binding spring-mvc

我无法解决我的绑定问题。

我有一个班级人员

Class Person {

Private fname;
private lname;
public Address address;

现在另一个班级

class Address {

    private street;
    private suburb;
}

在控制器中我有

model.addAttribute("personAttribute", new Person());

在jsp页面我有

<form:form modelAttribute="personAttribute" method="POST" action="${saveUrl}">
<td><form:input path="firstName"/></td>

提升此evrrythng是好的,但是当我添加

<td><form:input path="street"/></td>

然后成为问题。我不知道如何添加Adress对象。

我的意思是我必须做什么

    model.addAttribute("personAttribute", new Person(new Address()));
    or

    model.addAttribute("addressAttribute", new Address());
or

td><form:input path="person.address.street"/></td>

2 个答案:

答案 0 :(得分:1)

你必须像这样绑定路径:

<td><form:input path="address.street"/></td>

这是因为你在约束Person对象的范围内。

答案 1 :(得分:0)

以下代码是正确的:

model.addAttribute("personAttribute", new Person());

这将使用空属性初始化Person,包括空地址。

如果要确保地址不为空,则必须传递包含值的person实例。例如

Person person = new Person();
person.setFirstName("John");
person.setLastName("Smith");

Address address = new Address();
address.setStreet("#10 Avenue");
address.setSuburb("Cook");

person.setAddress(address);

通常,您可能希望使用从数据库或数据源检索的值填充person对象。