我有一个实体作为供应商,另一个实体作为地址,它们之间的关系是一对多形式供应商要解决 .
注意:我正在使用JPA
我的供应商实体
public class Vendor {
private Integer id;
private String name;
private List<Address> address;
// getter and setters
}
地址类:
public class Address {
private Integer id;
private String addressline1;
private String addressline2;
//getter and setters
}
现在我正在使用Thymeleaf,我有一个场景,我需要动态地将地址添加到特定供应商的表单中 .
如何在spring mvc中使用Thymeleaf为供应商中的Address对象进行对象绑定?
2 回答
评论如果我不理解你的问题是正确的,那对我来说有点不清楚......
为了访问供应商的地址,您在控制器中提供供应商(类似于
model.addAttribute("vendor", currentVendor);
)并在您的html文件中调用vendor.address . 请注意,这将为您提供一个列表,因此您需要迭代以显示所有地址:嗯,'s tricky because binding to form doesn'以动态的方式工作 . 这意味着你不能做像@Viergelenker建议 AND 将每个地址对象绑定到他自己的形式 .
您可以向模型添加单个地址对象,例如
然后在yout模板中定义一个表单,如:
遗憾的是,无法向模型添加数组或列表,并将该集合中的每个对象绑定到自己的表单:
要么
你可以做的是不使用表单绑定,只是从没有绑定的表单中发送一些名称 - 值对(只使用名称和th:value属性,而不是表单中的th:field属性)到控制器,得到它们来自HttpServletRequest对象并创建/更新/删除地址对象...或将整个Vendor对象绑定到表单(注意使用stat.index):