Bonjour, j’aimerais créer un formulaire contenant une liste de textfield dont la taille dépend du nombre d’éléments que j’ai en base.
J'ai essayé comme ceci mais ça ne fonctionne pas.
Concrètement j'ai mon bean qui correspond à une table de ma base de données.
J'ai ma classe action qui va contenir ma liste de Tarif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 @Entity public class Tarif implements Serializable { @Id @GeneratedValue @Column(name="ID_TARIF") private int idTarif; @Column(name="PRIX") private float prix; public int getIdTarif() { return this.idTarif; } public void setIdTarif(int idTarif) { this.idTarif = idTarif; } public float getPrix() { return this.prix; } public void setPrix(float prix) { this.prix = prix; } }
Et j'ai ma jsp qui affiche mon formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class ActiviteAction extends ActionSupport{ private List<Tarif> listTarif; public void setListTarif(List<Tarif> listTarif) { this.listTarif = listTarif; } public List<Tarif> getListTarif() { return listTarif; } }
J'ai bien mon formulaire qui s'affiche avec le bon nombre de textfield.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ... <s:form> <s:iterator value="listTarif" status="status"> <s:textfield name="listTarif[#status.index].prix" ></s:textfield> </s:iterator> <s:submit value="Valider"></s:submit> </s:form>
Les get() se font bien, c'est à dire que mes champs prix sont bien renseignés dans les textfield correspondants mais lorsque je les modifie et que je valide mon formulaire les set() ne sont pas appelés.
Ni les setPrix() , ni le setListTarif() ce qui fait que dans mon action je récupère ma listTarif à null.
Pouvez vous me dire où je fais erreur ou si il y a une meilleure solution pour résoudre mon problème. Merci
Partager