2012-03-29 6 views
1

У меня есть вопрос о Spring, особенно в компоненте MVC. У меня есть страница jsp, которая содержит следующий код.Весенняя форма MVC с foreach

<form:form modelAttribute="sentenceModelAttribute" 
      method="POST" action="sentencemanagement.htm"> 
     <table class="activity">     
      <tr> 
      <th/> 
      <th>ID</th> 
      <th>Description</th> 
      <th>Action</th> 
      <th>Decision</th> 
      </tr> 

      <c:forEach items = "${model.allSentences}" var="sentence"> 
      <tr> 
      <td><form:radiobutton path="id" value="${sentence.id}"/></td> 
      <td>${sentence.id}</td> 
      <td>${sentence.description}</td> 
      <td>${sentence.action}</td> 
      <td>${sentence.decision}</td> 
      </tr> 
      </c:forEach> 

     </table> 
     <input type="submit" name="modify" value="Modify"/> 
     <input type="submit" name="cancel" value="Cancel"/>    
    </form:form> 

Сообщение подключен к способу в контроллере, и этот метод имеет аргумент sentenceModelAttribute. В настоящее время этот аргумент имеет все значения объекта из выбранного радиообъекта. Это действительно то, что я хочу. Мой вопрос: как это сделать? Как он связывает объект, который я выбрал из таблицы, с тем, что появляется в атрибуте modelAttribute?

+0

Можете ли вы опубликовать код контроллера? – WilQu

+0

Конечно, вот оно -> [link] (http://pastebin.com/9GuND1ci) Что я хочу знать, это то, что делает предложениеModelAttribute.getId() возвращает значение из строки i, выбранной в таблице. Я не могу понять, как это работает. – alegen

+0

Можете ли вы опубликовать файл класса для объекта предложенияModelAttribute. Я ожидаю, что у него есть список «allSentences», но какие типы объектов содержатся в этом списке. Это строка или какой-то пользовательский объект, который содержит значение «id». – emeraldjava

ответ

2

Ваш радиокнопку имеет id как атрибут пути. Этот путь относится к sentenceModelAttribute, который установлен в вашем теге формы, поэтому значение радиоблока привязано к sentenceModelAttribute.id.

+0

yes, предложениеModelAttribute имеет поле с именем id. , так что я полагаю, что, например, если бы у меня были флажки вместо радиолюбителей, мне нужно было бы сделать предложениеModelAttribute с идентификатором List вместо одного длинного идентификатора? – alegen

+0

после того, как я попробовал некоторые вещи, я понял это ... кажется, что атрибут пути делает магию :) спасибо – alegen

+0

@alegen да, так как может быть несколько выбранных значений. – WilQu

Смежные вопросы