You are in essence doing this:
model.addAttribute("survivor", model);
The issue that you are seeing in the form:input
is that it is expecting a getter decedent
on model which does not exist. The fix could be to use another wrapper type on top of a normal Map:
public class MyCommand{
private Map<String, Decedent> decedents;
...getters and setters.
}
..
model.addAttribute("survivor", ..); //Add MyCommand type..
..
<form:form commandName="survivor" action="${submitAction}">
<form:input path="decedents['decedent']" />