Siento que esto debería ser extremadamente obvio, pero hasta ahora no he podido encontrar una respuesta.Llenar lista <String> en struts2 a partir de datos de formulario
Quiero tener una lista de cadenas (o una matriz de cadenas, realmente no me importa) que se llene por datos de formulario en Struts2.
He visto varios ejemplos de cómo hacer indexed properties with beans, pero envolver una sola cadena dentro de un objeto parece bastante tonto.
Así que tengo algo así como
public class Controller extends ActionSupport {
private List<String> strings = new ArrayList<String>();
public Controller() {
strings.add("1");
strings.add("2");
strings.add("3");
strings.add("4");
strings.add("5");
}
public String execute() throws Exception {
return ActionSupport.SUCCESS;
}
public List<String> getStrings() {
return strings;
}
public void setStrings(List<String> s) {
strings = s;
}
}
...
<s:iterator value="strings" status="stringStatus">
<s:textfield name="strings[%{#stringStatus.index}]" style="width: 5em" />
</s:iterator>
Los campos del formulario son rellenados con sus valores iniciales (por ejemplo, 1, 2, etc), pero los resultados no son adecuadamente publicado de nuevo. setStrings
nunca se llama, pero los valores se establecen en cadenas vacías.
¿Alguien tiene alguna idea de lo que está pasando? ¡Gracias por adelantado!
Eso funciona, ¡gracias! Parece extraño que tenga que especificar el valor de lo que parece ser el caso simple, pero no para los beans. * shrug * Además, cuando dices que 'el nombre de las referencias de campo son' cadenas [x] 'donde como necesitas que el nombre sea solo' cadena ',' supongo que quieres decir 'cadenas' ... .? Finalmente, el primero sería el formato correcto para beans, a la derecha (por ejemplo, personas [0] .name con ArrayList personas)? –
Chris
Marque esta respuesta como resuelta si se ha resuelto el problema. – Quaternion
@Quaternion: ya hecho. Aunque él (aparentemente inadvertidamente) editó la parte clave de su solución; es decir, el valor debe estar en la línea de% {getStrings(). get (# stringStatus.index)} – Chris