次のように定義されたコントローラーがあります。
public void saveCustomer(@Valid @ModelAttribute("customer") Customer customer) {
// persist
}
Customer のゲッター:
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:test@test.com