Spring mvc: контроллер возвращает [] [], можно использовать в jsp с foreach, но как связать? - PullRequest
0 голосов
/ 29 апреля 2010

Я создаю приложение Spring mvc. Теперь у меня проблема в следующем.

У меня есть контроллер, который добавляет DayInfo[][] к моему ModelMap. (DayInfo имеет id, title (String) и Text (также String).

Теперь у меня проблема в том, что у меня нет проблем с отображением этого DayInfo[][] с тегами <foreach> в моем jsp.

Однако я выводю свойство Title в качестве поля ввода (введите текст), и я хотел бы иметь возможность обновить это значение (и, следовательно, сохранить его в базе данных, но это не должно проблема). Однако у меня возникают проблемы с привязкой этого значения к полю ввода, чтобы оно действительно возвращалось контроллеру.

Если у кого-нибудь есть какой-то совет, это будет приветствоваться.

1 Ответ

1 голос
/ 30 апреля 2010

Я никогда не делал этого с многомерными массивами, но это должно быть что-то вроде этого (хотя я не пробовал, это просто чтобы дать вам идею). В 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
}

Надеюсь, это поможет, и извините, если есть какая-либо ошибка, хотя я пишу без нее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...