Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与spring MVC JSP页面绑定混淆_Java_Jsp_Data Binding_Spring Mvc - Fatal编程技术网

Java 与spring MVC JSP页面绑定混淆

Java 与spring MVC JSP页面绑定混淆,java,jsp,data-binding,spring-mvc,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 modelA

我一直无法解决绑定问题

我有一个班的人

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>

这一切正常,但当我添加

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

这就成了问题。我不知道怎样才能在person中添加address对象

我是说我必须做什么

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

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

td><form:input path="person.address.street"/></td>
model.addAttribute(“personAttribute”,newperson(newaddress());
或
addAttribute(“addressAttribute”,newAddress());
或
td>

以下代码是正确的:

model.addAttribute("personAttribute", new 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对象。

您必须像这样绑定路径:

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


这是因为您在绑定中处于
Person
对象的范围内。

实际上我正在数据库中插入值。所以,你能解释一下我必须在jsp页面中写些什么吗?比如person.address.street是有效的名字,我在person对象中设置了这个名字,会有什么影响吗difference@Pasha是的。在这种情况下,我向你推荐。然后您必须绑定地址,比如
地址[1],地址[2]
…实际上我并没有检索,而是插入值。所以像你的address.street(它起作用了),我现在怎么能写像address[]street或什么的呢。在spring formRead/write中绑定列表或集合的联机示例中,读/写是通过绑定来管理的,因此,如果您正确绑定了数据对象,那么当您将其发布到服务器时,您可以在输入参数的方法中填充它,并用
@modeldattribute
注释。提到