Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Spring MVC一对多表单提交_Spring_Spring Mvc - Fatal编程技术网

Spring MVC一对多表单提交

Spring MVC一对多表单提交,spring,spring-mvc,Spring,Spring Mvc,我有一个类“Info”,它包含用户的信息,如姓名、出生日期、电子邮件 我还有另一个名为“Address”的类,它包含用户的地址信息 信息类与地址有一对多关系。因此Info类有一个地址列表。例如:列表添加列表 现在我想有一个表单,这样用户可以把他们的信息。在表单中,用户将输入他们的信息类信息和地址类信息。我试图创建一个jsp页面,从用户那里获取所有参数,但是在这个jsp页面上出现了错误 <c:forEach items="info.addList" var="address" varStat

我有一个类“Info”,它包含用户的信息,如姓名、出生日期、电子邮件

我还有另一个名为“Address”的类,它包含用户的地址信息

信息类与地址有一对多关系。因此Info类有一个地址列表。例如:列表<地址>添加列表

现在我想有一个表单,这样用户可以把他们的信息。在表单中,用户将输入他们的信息类信息和地址类信息。我试图创建一个jsp页面,从用户那里获取所有参数,但是在这个jsp页面上出现了错误

<c:forEach items="info.addList" var="address" varStatus="status">

  <div class="form-group" > 
    <form:label path="address.address1">Street Name</form:label>
    <form:input path="address.address1" cssClass="form-control"/>
  </div>
  <div class="form-group">
    <form:label path="address.address2">Apt/Suite</form:label>
    <form:input path="address.address2" cssClass="form-control"/>
  <div>
  <div class="form-group">
    <form:label path="address.city">City</form:label>
    <form:input path="address.city" cssClass="form-control"/>
  </div>
</c:forEach>


org.springframework.beans.NotReadablePropertyException: Invalid property 'address' of bean class     [  com.ttg.mvc.beans.Info]: Bean property 'address' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:725)
这是该url显示注册表单的请求映射

@RequestMapping("/register")
public String showRegistrationForm(Model model) {
    Info info= new Info();
    model.addAttribute("info", info);
    return "registration";
}

我认为jsp代码应该如下所示,因为
Address
是一个集合,所以我们需要使用
index
。索引将是动态的,因为用户可以添加更多地址,或者您希望以任何方式维护它

<c:forEach items="info.addList" var="address" varStatus="status">

  <div class="form-group" > 
    <form:label path="address[0].address1">Street Name</form:label>
    <form:input path="address[0].address1" cssClass="form-control"/>
  </div>
  <div class="form-group">
    <form:label path="address[0].address2">Apt/Suite</form:label>
    <form:input path="address[0].address2" cssClass="form-control"/>
  <div>
  <div class="form-group">
    <form:label path="address[0].city">City</form:label>
    <form:input path="address[0].city" cssClass="form-control"/>
  </div>
</c:forEach>

街道名称
公寓/套房
城市

地址是集合,您必须借助JSP上的索引进行访问

<c:forEach items="info.addList" var="address" varStatus="status">

      <div class="form-group" > 
        <form:label path="address[status.index].address1">Street Name</form:label>
        <form:input path="address[status.index].address1" cssClass="form-control"/>
      </div>
      <div class="form-group">
        <form:label path="address[status.index].address2">Apt/Suite</form:label>
        <form:input path="address[status.index].address2" cssClass="form-control"/>
      <div>
      <div class="form-group">
        <form:label path="address[status.index].city">City</form:label>
        <form:input path="address[status.index].city" cssClass="form-control"/>
      </div>
    </c:forEach>

街道名称
公寓/套房
城市

请指出您的错误,@Robinson Rossishow告诉我们您的信息和地址代码,我想问题就在这里,您可能会感兴趣(如何实现动态子表单,这与在一种形式中具有一对多关系相同)我尝试了这种方法,但上面提到的错误响应你们两个都是对的。在将Info的模型对象发送到JSP之前,我只需要在Info类中添加一个地址列表。该列表包含Address类的一个新对象。这是一点工作,但现在很好。我用上面提到的指导和完善。谢谢我试过这种方法,但是上面提到的错误响应你们两个都是对的。在将Info的模型对象发送到JSP之前,我只需要在Info类中添加一个地址列表。该列表包含Address类的一个新对象。这是一点工作,但现在很好。我用上面提到的指导和完善。谢谢@如果问题解决了,请接受答案或投票。
<c:forEach items="info.addList" var="address" varStatus="status">

  <div class="form-group" > 
    <form:label path="address[0].address1">Street Name</form:label>
    <form:input path="address[0].address1" cssClass="form-control"/>
  </div>
  <div class="form-group">
    <form:label path="address[0].address2">Apt/Suite</form:label>
    <form:input path="address[0].address2" cssClass="form-control"/>
  <div>
  <div class="form-group">
    <form:label path="address[0].city">City</form:label>
    <form:input path="address[0].city" cssClass="form-control"/>
  </div>
</c:forEach>
<c:forEach items="info.addList" var="address" varStatus="status">

      <div class="form-group" > 
        <form:label path="address[status.index].address1">Street Name</form:label>
        <form:input path="address[status.index].address1" cssClass="form-control"/>
      </div>
      <div class="form-group">
        <form:label path="address[status.index].address2">Apt/Suite</form:label>
        <form:input path="address[status.index].address2" cssClass="form-control"/>
      <div>
      <div class="form-group">
        <form:label path="address[status.index].city">City</form:label>
        <form:input path="address[status.index].city" cssClass="form-control"/>
      </div>
    </c:forEach>