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
注释。提到