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 :
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>
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
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;
    }
}
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
 
<!-- 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" />
    &nbsp;
    <!-- 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>
... afficherait le même message d'erreur à chaque ligne, quel que soit le champ qui a provoqué l'erreur!
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.