Comportement bizarre d'un layout:select
Bonsoir,
Soit le code suivant :
Code:
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:
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):
Citation:
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:
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.