Bonjour,
J'ai un formulaire qui doit afficher une liste via <logic:iterate />, chaque ligne comportant un libellé et un champ texte à saisir. Le code suivant vous éclairera peut - être :
Ou chaque élément est un bean Java classique avec deux champs libelle et champASaisir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <!-- Liste de champs dynamique --> <logic:iterate id="element" name="form" property="liste"> <!-- Nom du champ --> <bean:write name="element" property="libelle" /> : <!-- Champ input text --> <html:text name="element" property="champASaisir" /> <br/> </logic:iterate>
Je voudrais savoir comment afficher, à chaque ligne, un message d'erreur en face de chaque champ erroné. La balise <html:errors/> permet d'afficher un message d'erreur, mais son attribut property ne me permet pas de préciser quelle ligne est concernée. Autrement dit, le code :
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 // Element de la liste de champs dynamique. class Element { // Nom du champ private String libelle; // Valeur du champ private String champASaisir; public String getLibelle() { return this.libelle; } public void setLibelle(String libelle) { this.libelle = libelle; } public String getChampASaisir() { return this.champASaisir; } public void setChampASaisir(String champASaisir) { this.champASaisir = champASaisir; } }
... afficherait le même message d'erreur à chaque ligne, quel que soit le champ qui a provoqué l'erreur!
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 <!-- Liste de champs dynamique --> <logic:iterate id="element" name="form" property="liste"> <!-- Nom du champ --> <bean:write name="element" property="libelle" /> : <!-- Champ input text --> <html:text name="element" property="champASaisir" /> <!-- Messages d erreur relatifs au champ input text de cette ligne --> <!-- Début code à faire --> <html:errors property="champASaisir" /> <!-- Fin code à faire --> <br/> </logic:iterate>
Ce n'est pas non plus <html:errors name="element" property="champASaisir" />, car name doit pointer vers une liste d'erreur Struts, pas vers le bean qui contient le champ en question.
Je dois probablement rater quelque chose d'évident. Quelqu'un sait-il comment faire?
Merci d'avance.
Partager