Java SpringMVC表单一对多表单
我有3个实体用户、部门和地址。其中用户可以有多个地址。现在我对为这个用例构建表单有疑问 我可以直接访问部门,因为它是对象。但我不知道如何引用地址属性,因为它是一个集合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
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
?否则,
用于显示地图中的条目列表(键作为选项的值,值作为显示字段),因此我假设它可以与您的地址
对象号匹配?