Integer mes donnes dans un SelectOneListBox avec IceFaces

[Résolu]
Signaler
Messages postés
11
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
11 avril 2013
-
Messages postés
11
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
11 avril 2013
-
Bonsoir,
Je suis debutant j2ee j'essaye de fair eun projet Icefaces.
j'ai essayé de mettre toute les nom de module de table Module dans un items ... Pour cela j'ai utiliser le :


<f:selectItems value="#{creat.nomMod}"/>



Mon Managed-bean est :

<managed-bean>
<managed-bean-name>creat</managed-bean-name>
<managed-bean-class>controle.Create</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

classe Create est:
public class Create {
@EJB //(name="GestionModule/Remote")
//GestionModule gestionMod;
GestionModuleRemote gesModR;
@EJB
GestionMatiereRemote gesMatR;

private Module module;
private Matiere matiere;
private String text_nomMod;
private String text_nomMat;
//private boolean upMat;

public Module getModule() {
return module;
}

public void setModule(Module module) {
this.module = module;
}

public Matiere getMatiere() {
return matiere;
}

public void setMatiere(Matiere matiere) {
this.matiere = matiere;
}

public String getText_nomMod() {
return text_nomMod;
}

public void setText_nomMod(String textNomMod) {
text_nomMod = textNomMod;
}

public String getText_nomMat() {
return text_nomMat;
}

/*public void setText_nomMat(String textNomMat) {
text_nomMat = textNomMat;
}
*/

/**/

public void CreatMod(ActionEvent e) {
// module.setNomModule(text_nomMod);
module= new Module(text_nomMod);
//idM = module.getIdModule();
gesModR.create(module);
}
public void DeletMod(ActionEvent e) {
//module= new Module(text_nomMod).;
//module= GMR.readById(22);
//	boolean del=gesModR.delete(module);
}

public void CreatMat(ActionEvent e) {
matiere= new Matiere(text_nomMat);
int idMat=matiere.getIdMatriele();
gesMatR.create(matiere);
Matiere mat=gesMatR.readById(idMat);
mat.setModule(module);
//	upMat=gesMatR.update(mat);
}
}

Mon Entity est:
public class Module implements Serializable {


private static final long serialVersionUID = 1L;
private int idModule;
private String nomModule;
private Collection<Matiere> matieres;
//private List nomM;
public Module() {
super();
}


public Module(String nomModule) {
super();
this.nomModule = nomModule;
}


@Id
@GeneratedValue
public int getIdModule() {
return idModule;
}

public void setIdModule(int idModule) {
this.idModule = idModule;
}

public String getNomModule() {
return nomModule;
}

public void setNomModule(String nomModule) {
this.nomModule = nomModule;
}

@OneToMany(mappedBy="module")
public Collection<Matiere> getMatieres() {
return matieres;
}

public void setMatieres(Collection<Matiere> matieres) {
this.matieres = matieres;
}


/**
 * @param nomMatList the nomMatList to set
 */

/**
 * @return the nomM
 */
/*	public List getNomM() {
return nomM;
}


/**
 * @param nomM the nomM to set
 */
/*	public void setNomM(List nomM) {
this.nomM = nomM;
}*/


@Override
public String toString() {
return "Module [idModule=" + idModule + ", nomModule=" + nomModule
+ "]";
}




}

merci de votre collaboration

9 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
<f:selectItems permet de créer une selection à partir d'une liste or nomMod(ule) n'est pas une liste, c'est un String.

Voilà un petit exemple d'utilisation.

  <f:selectItem itemLabel="Label1" itemValue="1" />
  <f:selectItem itemLabel="Label2" itemValue="2" />
  <f:selectItem itemLabel="Label3" itemValue="3" />
  <f:selectItem itemLabel="Label4" itemValue="4" />
  <f:selectItems value="#{backingBean.selectItems}" />


Autre souci nomMod n'existe nulle part, il est donc normal que tu n'arrives pas à l'afficher. Si c'est nomModule que tu veux afficher :

<f:selectItem itemLabel="#{creat.module.nomModule}" itemValue="1" />


En faisant bien les getters sur module et nomModule

Si tu veux afficher la liste nomMod qui pour l'instant est en commentaire :
<f:selectItems value="#{creat.module.nomMod}" />
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Et bien oui, ce que tu observes est normal.

Je ne sais pas ce que tu veux faire. Afficher une liste, si c'est le cas, quelle liste ? Et il faut utiliser <f:selectItems
dans ce cas. Mais il faut que value pointe sur une liste...
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Alors, ou en es tu ? Ça marche ?
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Bonjour,

Quelle est ta question, ton problème ?
Messages postés
11
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
11 avril 2013

Mon question est comment mettre toute les nom de Module dans un SelectOneListBox ??
et Merci bien ;)
Messages postés
11
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
11 avril 2013

voici mon Listbox :

    <f:selectItem itemLabel="#{creat.module.nomModule}" itemValue="1"/>



bon j'ai modifier le getter de module mais aucune resultat !!!

public Module getModule() 
        {
module=gesModR.readAll();
return module;
}


le "readAll()" return une list<Module> .. et j'ai essai cette getter mais aussi une erreur !!

public Module getModule()
        {
for (int i = 0; i < gesModR.readAll().size(); i++) {
module=gesModR.readById(i);
}
return module;
}



si vous avez une solution ??? et merci bien encore pour votre collaboration
Messages postés
11
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
11 avril 2013

j'ai essayé cette code mais a retourner le dernier nomModule dans la base !!!

 <f:selectItem itemLabel="#{creat.module.nomModule}"/>


@EJB 
GestionModuleRemote gesModR;
private Module module;

public Module getModule() {
for (int i = 0; i < gesModR.readAll().size(); i++) {
   module=gesModR.readById(i);
}	
return module;
}

public void setModule(Module module) {
this.module = module;
}
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Ok, pas de réponse, j'accepte donc les réponses qui me semble les plus utiles à ta place.
Messages postés
11
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
11 avril 2013

Excusez-moi pour mon retard, car je suis en train de passer mes examens, je trouvais plus de solutions! Voilà ma dernière solution, mais encore aucun résultat.




  <f:selectItems value="#{creat.lstNameMod}"/>



        @EJB 
GestionModuleRemote gesModR;

private Module module;
private List<String> lstNameMod;

public List<String> getLstNameMod() {
return lstNameMod;
}

public void setLstNameMod(List<String> lstNameMod) {
this.lstNameMod = gesModR.listByName();
}


public class GestionModule implements GestionModuleRemote{
//...
@Override
public List<String> listByName() {
// TODO Auto-generated method stub
return em.createNamedQuery("Module.listByName").getResultList();
}

//...
}



// class Module :

@NamedQueries({
@NamedQuery(name="Module.listAll",query="select m from Module m"),
@NamedQuery(name="Module.listByName",query="select m.nomModule from Module m")})
public class Module implements Serializable {
 //..


et encore merci infiniment