Bonsoir,
Soit le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<layout:select key="candidat.TXT_NATIONALITE" property="TXT_nationalite_OB" isRequired="true">
<layout:options collection="listePays" property="value" labelProperty="label" />
</layout:select>
La liste listePays est alimentée comme suit :
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
 
Vector fillPays() {
   TraitCandidat trait = new TraitCandidat();
   Object[] tab;
   Vector vect = new Vector();
   // Requete SELECT * FROM PAYS
   List listechamp = trait.selectPays();
 
   vect.add(new sn.com.bit.utils.LabelValue("", ""));
   for (int i = 0; i < listechamp.size(); i++) {
      tab = (Object[]) listechamp.get(i);
      System.out.println("CandidatForm.fillPays( )  tt " +tab[0].toString() );
      vect.add(new sn.com.bit.utils.LabelValue((tab[1].toString()),tab[0].toString()));
   }
   return vect;
}
Dans ma base j'ai les données suivantes de la table PAYS (code, libelle):
SN Sénégal
FR France
ES Espagne
Quand j'affiche le system.out qui est dans ma boucle FOR, je n'obtiens que la première lettre du code pays (tab[0] représentant la colonne code de ma table et tab[1], la colonne libelle).
Donc en affichant la source de ma page web, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<select name="TXT_nationalite_OB" onchange="checkValue(this, 'TXT_nationalite_OB','TEXT',true);">
   <option value=""></option>
   <option value="E">Espagne</option>
   <option value="F">France</option>
   <option value="S">Sénégal</option>
</select>
Qu'est ce qui pourrait expliquer cela? On dirait que j'ai une coupure d'un caractère pourtant je n'ai pas ce problème lorsque le champ code est de type integer auto incrément dans ma base. En effet, des tables (de format : code-libelle) de plus de 40 enregistrements avec des codes égaux à : 10,11,12... n'ont pas se problème.