
-------联系人和 客户 是 一对多 的关系
/**
*联系人实体*/
@Entity
@Table(name = "crm_contact")
public class Contact extends IdEntity {
@ManyToOne(targetEntity = Customer.class, cascade = { CascadeType.ALL })
@JoinColumn(name = "customer_id")
public Customer getCustomer() {
return customer;
}
}
下面是我写的 联系人 表单页面 中 客户选择部分:
<select id="contact_customer" name="contact.customer.id" class="form-control">
<c:forEach items="${customers}" var="customer">
<option value="${customer.id}">${customer.name}</option>
</c:forEach>
</select>
进入 联系人页面前 的controller 的方法如下:
@RequestMapping(value = "create", method = RequestMethod.GET)
public String createForm(Model model, ServletRequest request) {
List<Customer> customers = new ArrayList<Customer>();
customers = customerService.getAllCustomer(searchParams);
model.addAttribute("customers", customers);
model.addAttribute("contact", new Contact());
model.addAttribute("action", "create");
return "contact/contactForm";
}
提交保存 执行的方法:
@RequestMapping(value = "create", method = RequestMethod.POST)
public String create(Contact newContact, RedirectAttributes redirectAttributes) {
contactService.saveContact(newContact);
redirectAttributes.addFlashAttribute("message", newContact.getName() + "创建成功!");
return "redirect:/contact/create";
}
联系人表单页面上 ,比如姓名 可以直接 这样写<input type="text" id="contact_name" name="name" class="form-control"/>
请问 联系人 所属的客户 怎么写才能在提交表单时 把联系人的客户的ID提交上去,下面写的 name="contact.customer.id" 不行。。。。。。。。。。。。
<select id="contact_customer" name="contact.customer.id" class="form-control">
<c:forEach items="${customers}" var="customer">
<option value="${customer.id}">${customer.name}</option>
</c:forEach>
</select>