bonsoir,

mon problème c'est que je n'arrive pas à récupérer ma liste sélectionnée dans une pickList de richfaces:

voilà le code dans ma page JSP :
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
 
 <rich:pickList value="#{manage_bean.eleves_result}" converter="#{manage_bean.converter}"  >
        <f:selectItem itemLabel="Nom etudiant" itemValue="Nom"/> 
            <f:selectItems value="#{manage_bean.leftList}" />
            <a4j:support event="onlistchanged" reRender="result" />
        </rich:pickList>
 
        <rich:panel id="result" bodyClass="pbody">
            <f:facet name="header">
                <h:outputText value="#{manage_bean.nbr} etudiant(s)"></h:outputText>
            </f:facet>
            <rich:dataList value="#{manage_bean.eleves_result}" var="student"  > 
                    <h:outputText value="#{student.cne}"/>
            </rich:dataList> 
        </rich:panel>
et voilà ma classe manage_bean:
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
 
package mypackage;
 
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import javax.faces.model.SelectItem;
 
public class Manage_bean extends Connexion {
 
 
	private ArrayList<eleve> eleves=new ArrayList<eleve>();
	private List<SelectItem> leftList = new ArrayList<SelectItem>();
	//liste des etudiants sélectionnés
	private List<SelectItem> result = new ArrayList<SelectItem>();
	private List<eleve> eleves_result=new ArrayList<eleve>();
	//etudiant
	private eleve etudiant=new eleve();
 
	private int nbr;
 
	//Converting from SelectItems to your Object:  
	private MyConverter converter;
 
	//constructeur
	public Manage_bean() throws ClassNotFoundException, SQLException {
		super();
		eleves.clear();	
		lire("SELECT * FROM eleve where ID_DEPART='1'; ");
		  while(suivant())
		    {		  	  
		  	  eleves.add(new eleve(résultat.getString("CNE"),résultat.getString("NOM_ELEVE"),résultat.getString("PRENOM_ELEVE"),résultat.getInt("ref_groupe"),résultat.getInt("ID_DEPART")));
		    }
 
	}
//Getters && setters
	public int getNbr() {
		this.nbr=eleves_result.size();
		return nbr;
	}
 
	public void setNbr(int nbr) {
		this.nbr = nbr;
	}
 
	public List<eleve> getEleves_result() {
		this.nbr=eleves_result.size();
		return eleves_result;
	}
 
	public void setEleves_result(List<eleve> eleves_result) {
		this.eleves_result = eleves_result;
	}
 
	public List<SelectItem> getResult() {
		return result;
	}
 
	public void setResult(List<SelectItem> result) {
		this.result = result;
	}
 
	public MyConverter getConverter() {
		return converter;
	}
 
	public void setConverter(MyConverter converter) {
		this.converter = converter;
	}
 
 
	public List<SelectItem> getLeftList() {
 
			this.leftList = new ArrayList<SelectItem>();  
			//ajouter tous les eleves  
			 converter = new MyConverter(eleves);			 
			for(eleve a: eleves){  
			         SelectItem s = new SelectItem(a,a.getNom());  
			         this.leftList.add(s);  
			         }  
 
			return leftList;
	}
 
	public void setLeftList(List<SelectItem> leftList) {
		this.leftList = leftList;
	}
 
	public ArrayList<eleve> getEleves() {
		return eleves;
	}
 
	public void setEleves(ArrayList<eleve> eleves) {
		this.eleves = eleves;
	}
 
	public eleve getEtudiant() {
		return etudiant;
	}
 
	public void setEtudiant(eleve etudiant) {
		this.etudiant = etudiant;
	}
 
  //affectation
     public String affectation() throws SQLException, ClassNotFoundException
     {
    	 int i;	
    	 eleve e=new eleve();
    	 if(eleves_result.size()!=0)
    	 {
 
	    	 for(i=0;i<eleves_result.size();i++)
	    	 {
	    		 e=eleves_result.get(i);
 
	    		 modifier("update affectaion set etat='oui' where cne_aff='"e.getCne()"' ;");
	    	 }
    	 }
 
    	 eleves_result.clear();
    	 return "result";
     }
}

la classe MyConverter :

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
package mypackage;
 
import java.util.ArrayList;
import java.util.HashMap;
 
 
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
 
 
  class MyConverter implements Converter{  
 
	          //converter uses a HashMap for switching from selectItems to your objects  
	          private HashMap<String, eleve> map;  
 
	          public MyConverter(ArrayList<eleve> etudiants) {  
	                  map=new HashMap<String, eleve>();  
	                  for(eleve o : etudiants){  
	                         map.put(o.getCne(), o);  
	                  }  
	          } 
 
 
	          public Object getAsObject(FacesContext arg0, UIComponent arg1, String string) {  
	                  return map.get(string);  
	          }  
 
	          public String getAsString(FacesContext arg0, UIComponent arg1, Object obj) {  
	                  if(obj instanceof eleve)   
	                          return Integer.toString(((eleve)obj).getRef_group());  
	                  return null;  
	          }  
	  }

le probleme c'est que je n'arrive pas à récupper les objets de eleves_result.
lla variable nbr=eleves_result.size() s'incremente mais la liste contient des objets nulls.

voilà l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Error calling action method of component with id j_id_jsp_444983576_5:j_id_jsp_444983576_15
 
Caused by:
java.lang.NullPointerException - /affectation.jsp(168,12) '#{manage_bean.affectation}' java.lang.NullPointerException
si quelqu'un a une idée pleaz