2009-06-10 16 views
5

Estoy intentando rellenar una lista de los granos de un formulario:Llenar Colección de Struts2 Formulario de Presentación

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

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

public class StrutsAction extends Action { 
    public Bar bar; 
} 

Así que en mi forma Struts2, ¿cuál es la mejor manera de llenar Foo? Intuitivamente, quiero hacer:

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

pero eso no funciona y podría causar colisiones. Estoy seguro de que la respuesta es muy simple y lo estoy pasando por alto.

Respuesta

12

Si lo entiendo correctamente, ¿quieres un nombre diferente para cada campo oculto?

<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> 

que debe dar el equivalente de

<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" /> 

Si tiene adecuado captador/definidor, debe configurar todos los valores cuando se envía el formulario.

+1

Tiene usted razón, señor. Supongo que simplemente no sabía la sintaxis correcta (es decir, la [0]). – Droo

+1

¡Gracias ...! me ayudó también ... (incluso después de 2 años :-P) –

Cuestiones relacionadas