2014-02-17 12 views
5

Ich erstelle eine Anwendung mit Struts, wo ich eine Liste von Personen aus der Datenbank und einer Liste von Schulen hole und dann html: select, damit der Benutzer die Schule auswählen kann Für jedes Element, hier ist der Teil der Jsp-Seite, wo ich feststecke.<display: column + <html: select

<display:table id="list" name="myForm.list" > 
    <display:column title="ID" property="id"/> 
    <display:column title="Name" property="name" sortable="true"/> 
    <display:column title="School" > 
    <html:select property="idSchool"> 
     <logic:notEmpty name="myForm" property="SchoolCombo"> 
     <bean:define id="SchoolCombo" name="myForm" property="SchoolCombo"/> 
     <html:options collection="SchoolCombo" property="id" labelProperty="name"/> 
     </logic:notEmpty> 
    </html:select> 
    </display:column> 
</display:table> 

Die Liste auf myForm eine Liste von Personen mit einer ID ist, einen Namen und eine idSchool, das ist ein int ohne Anfangswert. Die Schulcombo ist eine Liste von Schulen, die mit einer ID und einem Namen aus der Datenbank kamen.

Was kann ich tun, für jedes Element der Liste kann ich die IDSchool auf der JSP-Seite festlegen, und dann kann ich das Formular verwenden, um eine Tabelle zu aktualisieren, die die Person und mit der Schule speichert er ist?

Wenn ich nicht klar genug war, bitte fragen Sie, damit ich das Problem besser erklären kann.

Antwort

1

Wie ich verstehe, gebe ich Ihnen eine allgemeine Lösung für dieses Problem, müssen Sie die zusätzliche Arbeit, die für eine vollständige Lösung erforderlich ist .. Ich erkläre dies mit Struts2 <s:tag> so, haben Sie sich ändern nach Ihre Anforderung. Platzieren Sie zuerst die Stelle, an der Sie die Liste durchlaufen, und fügen Sie die eindeutigen Elemente als versteckte Felder hinzu. Diese versteckten Felder können serverseitig aus der Liste der Request-Parameter abgerufen werden. Wenn Sie auf einen beliebigen Datensatz klicken, wird er durch die eindeutige ID identifiziert, die Sie als verstecktes Feld festgelegt haben (ItemRec - weiter unten erläutert).

<s:iterator value="TheListOfItems" status="ItemRec"> 

    <s:hidden name="TheListOfItems[%{#ItemRec.index}].id" value="%{id}" /> 
    <s:hidden name="TheListOfItems[%{#ItemRec.index}].attribut2" value="%{attribut2}" /> 
    <s:hidden name="TheListOfItems[%{#ItemRec.index}].attribut3" value="%{attribut3}" /> 
    <the actual values/records get iterated here> 

</s:iterator> 

auf der Serverseite können Sie Folgendes tun sie so

String id= getRequest().getParameter("id"); 
abrufen