2012-03-29 17 views
1

Ich habe eine Frage zu Spring, vor allem die MVC-Komponente. Ich habe eine jsp-Seite, die den folgenden Code enthält.Feder MVC Form mit 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> 

Der Pfosten ist in einem Steuergerät ein Verfahren verbunden ist, und dieses Verfahren hat ein Argument sentenceModelAttribute. Derzeit enthält dieses Argument alle Werte des Objekts vom ausgewählten Radiobutton. Das ist in der Tat was ich will. Meine Frage ist, wie geht das? Wie verknüpft es das Objekt, das ich aus der Tabelle ausgewählt habe, mit dem, was in modelAttribute angezeigt wird?

+0

Können Sie den Code des Controllers eingeben? – WilQu

+0

sicher, hier ist es -> [link] (http://pastebin.com/9GuND1ci) was ich wissen will, ist das, was die sentenceModelAttribute.getId() gibt den Wert aus der Zeile ich in der Tabelle ausgewählt. Ich kann nicht verstehen, wie das funktioniert. – alegen

+0

Können Sie die Klassendatei für das sentenceModelAttribute-Objekt bereitstellen. Ich erwarte, dass es eine "allSentents" -Liste gibt, aber welche Objekttypen in dieser Liste enthalten sind. Ist es eine Zeichenfolge oder ein benutzerdefiniertes Objekt, das einen 'id' Wert enthält? – emeraldjava

Antwort

2

Ihre RadioButton- hat id als Pfad-Attribut. Dieser Pfad ist relativ zu sentenceModelAttribute, der in Ihrem Formular-Tag festgelegt ist, sodass der Wert des Radiobuttons an sentenceModelAttribute.id gebunden ist.

+0

Ja, sentenceModelAttribute hat ein Feld namens id. also nehme ich an, dass zum Beispiel, wenn ich checkboxes anstelle von radiobuttons hätte, ich sentenceModelAttribute mit einer Liste Identifikation anstelle von gerade einer langen Identifikation bilden müsste? – alegen

+0

nachdem ich einige Sachen ausprobiert habe, habe ich es herausgefunden ... es scheint, dass das Pfadattribut magisch ist :) danke – alegen

+0

@alengen ja, da könnte es mehrere ausgewählte Werte geben. – WilQu