2009-06-10 9 views
5

Ich versuche, eine Liste der Bohnen aus einem Formular zu füllen:Populate Abholung Struts2 Formular Submission

public class Foo { 
    public String attr1; 
    public String attr2; 
} 

public class Bar { 
    public List<Foo> foos; 
} 

public class StrutsAction extends Action { 
    public Bar bar; 
} 

Also in meiner Struts2 Form, was ist der beste Weg, Foo zu füllen? Intuitiv möchte ich folgendes tun:

<input type="hidden" name="bar.foos.attr1" /> 

aber das funktioniert nicht und würde Kollisionen verursachen. Ich bin sicher, die Antwort ist sehr einfach und ich übersehe es.

Antwort

12

Wenn ich es richtig verstehe, wollen Sie nur einen anderen Namen für jedes versteckte Feld?

<s:iterator value="bars" status="key"> 
    <s:hidden name="bar.foos[%{#key.index}].attr1" value="attr1" /> 
    <s:hidden name="bar.foos[%{#key.index}].attr2" value="attr2" /> 
</s:iterator> 

, die Ihnen das Äquivalent von

<input type="hidden" name="bar.foos[0].attr1" value="some value" /> 
<input type="hidden" name="bar.foos[0].attr2" value="some other value" /> 
<input type="hidden" name="bar.foos[1].attr1" value="some value" /> 
<input type="hidden" name="bar.foos[1].attr2" value="some other value" /> 

geben sollten, wenn Sie die richtige Getter/Setter haben, sollte es alle Werte festgelegt, wenn das Formular abgeschickt wird.

+1

Sie sind richtig, Sir. Ich nehme an, ich kannte einfach nicht die richtige Syntax (d. H. Die [0]). – Droo

+1

Danke ...! es hat mir auch geholfen ... (auch nach 2 Jahren :-P) –

Verwandte Themen