Salut,
j'ai une liste déroulante représentant les noms des projets.
Je veux en insérant dans la base récupérer l'id de l'objet projet puis enregistrer cet id dans la base.
est ce que quelqu'un a une idée!!!!
merci d'avance!!!!
Version imprimable
Salut,
j'ai une liste déroulante représentant les noms des projets.
Je veux en insérant dans la base récupérer l'id de l'objet projet puis enregistrer cet id dans la base.
est ce que quelqu'un a une idée!!!!
merci d'avance!!!!
Bonjour,
Je ne sais si j'ai bien saisie ton problème.
Tu as une liste déroulante, et tu récupères une liste de nom de projet insérer dans une base de donnée.
En sélectionnant un des noms dans la liste, tu souhaites récupérer l'id de l'objet insérer dans la base.
Pour ce problème, tu pourrais utiliser une HashMap est insérer donc son id et son objet.
Ainsi, dans la liste déroulante, tu peux setter avec le nom de l'objet ( le nom du projet ) et donc récupérer facilement l'id qui lui ai associe dans la HashMap.
Bonjour,
Pourrais-tu être plus précis, nous montrer ton code qui pose problème... Parce que vu les infos que tu nous donnes, on ne risque pas d'aller loin !
C'est le code java!!!!!
ça c'est le code dans la page xhtml!!!!!!Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public SelectItem[] getDescTypeProjet() { /* 3. Create a DAO instance to use */ //TypeProjetDAO dao = new TypeProjetDAO(); /* 5. Now retrieve the new product line, using the ID we created */ java.util.List<TypeProjet> typeProjet ; typeProjet= service.getObjects(TypeProjet.class); Integer i=0; SelectItem []a = new SelectItem[typeProjet.size()]; while( i<typeProjet.size()){ a[i] = new SelectItem (typeProjet.get(i).getDes(),typeProjet.get(i).getId().toString()); i++; } return a; //return descTypeProjet; }
NB: le probleme est que je veux récupérer l'id du type projet séléctionné sachant que la liste déroulante contient la description des types!!!Code:
1
2
3 <h:selectOneMenu style="width: 80%" value="#{projetDesc.typeProjet}" ><f:selectItems value="#{projetDesc.descTypeProjet}"/> </h:selectOneMenu>
Je ne comprends pas ton problème. L'attribut value du <h:selectOneMenu> pointe sur la propriété projectDesc.typeProjet, qui contient l'ID du projet sélectionné par l'utilisateur...
OuiCitation:
Est ce que tu veux dire insérer l'id comme clé et la désignation comme info???
Dans l'idée :
Code:
1
2
3
4
5
6
7
8
9
10
11
12 //Ici dans ma JSF <h:selectOneMenu value="#{ManagedBean.selectItem}" > <f:selectItems value="#{ManagedBean.list}"/> </h:selectOneMenu> //Ici dans mon Managed Bean for (int i = 0; i < listAnimals.size(); i++) { animalsMap.put("" + listAnimals.get(i).getId(), listAnimals.get(i)); }
J'ai trouvé la solution:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public SelectItem[] getDescTypeProjet() { /* 3. Create a DAO instance to use */ //TypeProjetDAO dao = new TypeProjetDAO(); /* 5. Now retrieve the new product line, using the ID we created */ java.util.List<TypeProjet> typeProjet ; typeProjet= service.getObjects(TypeProjet.class); Integer i=0; SelectItem []a = new SelectItem[typeProjet.size()]; while( i<typeProjet.size()){ /*******************le premier parametre est le selectionné le deuxieme est le proposé*****/ a[i] = new SelectItem (typeProjet.get(i).getId(),typeProjet.get(i).getDes()); i++; } return a; //return descTypeProjet; }
Code dans la page Xhtml.Code:
1
2
3private String typeProjet; get,set
Code:
1
2
3 <h:selectOneMenu style="width: 80%" value="#{projetDesc.typeProjet}" ><f:selectItems value="#{projetDesc.descTypeProjet}"/> </h:selectOneMenu>
L'id du projet sélectionné sera dans l'attributs typeProjet.
Oui, tu avais effectivement inversé l'ordre des IDs et des Labels dans la création des objets SelectItem.