我有一个控制器定义为:
public void saveCustomer(@Valid @ModelAttribute("customer") Customer customer) {
// persist
}
和客户中的吸气剂:
public List<ContactInfo> getContactInfo() {
if(contactInfo != null) {
return contactInfo;
}
else {
return new ArrayList<ContactInfo>();
}
}
如果我使用HTML表单命中控制器,则联系信息为null。但是,如果我将吸气剂更改为
public List<ContactInfo> getContactInfo() {
return contactInfo;
}
那么联系信息将被绑定并正确保留。我真的很困惑为什么会这样。
我已经检查了Chrome,联系信息肯定在请求参数中为:
contactInfo[0].alias:test
contactInfo[0].email:[email protected]
最佳答案
如果您不将contactInfo
设置为非null
,则将继续创建新的ArrayList
:
public List<ContactInfo> getContactInfo() {
if(contactInfo == null) {
contactInfo = new ArrayList<ContactInfo>();
}
return contactInfo;
}