Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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/6/codeigniter/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 SpringMVC表单一对多表单_Java_Spring_Jsp_Spring Mvc_Spring Form - Fatal编程技术网

Java SpringMVC表单一对多表单

Java SpringMVC表单一对多表单,java,spring,jsp,spring-mvc,spring-form,Java,Spring,Jsp,Spring Mvc,Spring Form,我有3个实体用户、部门和地址。其中用户可以有多个地址。现在我对为这个用例构建表单有疑问 我可以直接访问部门,因为它是对象。但我不知道如何引用地址属性,因为它是一个集合 class Users { private int id; private String name; private Department dept; @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinColumn(na

我有3个实体用户、部门和地址。其中用户可以有多个地址。现在我对为这个用例构建表单有疑问

我可以直接访问部门,因为它是对象。但我不知道如何引用地址属性,因为它是一个集合

class Users
{
  private int id;
  private String name;
  private Department dept;

  @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "userId", nullable = false)
    private Set<Address> addresses = new HashSet<Address>(0);

  //Getters and setters
}
类用户
{
私有int-id;
私有字符串名称;
私人部门;
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@JoinColumn(name=“userId”,nullable=false)
私有集地址=新哈希集(0);
//接球手和接球手
}
MyForm.jsp

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
    <title>Spring 3 MVC Series - Contact Manager</title>
</head>
<body>
<h2>Contact Manager</h2>
<form:form method="post" commandName="userObject" action="addPerson.html">

    <table>
    <tr>
        <td><form:label path="name">Name</form:label></td>
        <td><form:input path="name" /></td> 
    </tr>
    <tr>
        <td><form:label path="userObject.dept.deptName">Department Name</form:label></td>
        <td><form:input path="userObject.dept.deptName" /></td>
    </tr>
    <tr>
        <td><form:label path="userObject.addresses.street">Street Address</form:label></td>
        <td><form:input path="userObject.addresses.street" /></td>
    </tr>

    <tr>
        <td colspan="2">
            <input type="submit" value="Add Contact"/>
        </td>
    </tr>
</table>  

</form:form>

Spring3MVC系列-联系人管理器
联络经理
名称
部门名称
街道地址

如何使用对象访问我的jsp表单中的address属性。我在userObject.addresses.street的jsp中遇到问题

我将使用jstl标记库:

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

然后使用foreach

做一些事情,比如:

<c:forEach var="item" items="${userObject.addresses}">
  ${item.street}
</c:forEach>

${item.street}

您无法访问
列表,因为它是单个
对象
,因此您需要迭代
用户的
地址
,并显示街道或每个街道

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
  <title>Spring 3 MVC Series - Contact Manager</title>
</head>
<body>
  <h2>Contact Manager</h2>
  <form:form method="post" commandName="userObject" action="addPerson.html">

  <table>
    <tr>
      <td><form:label path="name">Name</form:label></td>
      <td><form:input path="name" /></td> 
    </tr>
    <tr>
      <td><form:label path="userObject.dept.deptName">Department Name</form:label></td>
      <td><form:input path="userObject.dept.deptName" /></td>
    </tr>
    <tr>
      <c:forEach var="address" items="${userObject.getAddresses()}">
        <td><form:label path="userObject.addresses.street">Street Address</form:label></td>
        <td><form:input path="userObject.addresses.street" />${address.street}</td> 

    </tr>
    <tr>
      <td colspan="2">
        <input type="submit" value="Add Contact"/>
      </td>
    </tr>
  </table>  

  </form:form>
  ...
</body>
</html>


Spring3MVC系列-联系人管理器
联络经理
名称
部门名称
街道地址
${address.street}
...

我这样做字段不可见哪个字段显示不准确?
${meCategory}
所指的是什么?${meCategory}是我正在为其设置列表的modelAttribute。当我使用address.addressLocation时,下拉列表不可见。您让我对原始帖子描述和您最近的评论感到困惑。您正在使用
commandName
属性来映射bean,那么您在谈论什么
modeldattribute
?否则,
用于显示地图中的条目列表(键作为选项的值,值作为显示字段),因此我假设它可以与您的
地址
对象号匹配?