Я никогда не делал этого с многомерными массивами, но это должно быть что-то вроде этого (хотя я не пробовал, это просто чтобы дать вам идею). В JSP вы должны установить имя входа с каждым индексом, примерно так:
<c:forEach var="row" items="${days}" varStatus="statusRow">
<c:forEach var="day" items="${row}" varStatus="statusCol">
<input type="text" name="days[${statusRow.index}][${statusCol.index}].title" value="${day.title}"/>
</c:forEach>
</c:forEach>
и в контроллере вы должны подготовить переменную days, чтобы размер массива был таким же, как у JSP. Таким образом, вы можете использовать метод @ModelAttribute для подготовки массива (этот метод будет выполнен перед методом @RequestMapping).
@ModelAttribute("days")
public getDays(){
DayInfo[][] days;
//Here you have to instantiate the days to prepare it so it can be filled
//You can load for example the data from the database
return days;
}
@RequestMapping("/yourURL")
public String getFormData(@ModelAttribute("days")DayInfo[][] days){
//Here in days you should have the data from the form overriding
// the one from the database
}
Надеюсь, это поможет, и извините, если есть какая-либо ошибка, хотя я пишу без нее.