Bonsoir,
Soit le code suivant :
La liste listePays est alimentée comme suit :
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>
Dans ma base j'ai les données suivantes de la table PAYS (code, libelle):
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; }
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).SN Sénégal
FR France
ES Espagne
Donc en affichant la source de ma page web, j'ai :
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.
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>
Partager