ArgumentError avec ma Combo Box
Bonjour,
Je suis actuellement en train de développer un workflow à l'aide de jBoss jBPM mais je suis confronté à une erreur avec JSF que je n'arrive pas à corriger, ca fait 2 jours que je suis dessus et je commence à désespérer.
Voilà, j'essaye de créer une combo box contenant les noms d'une table de ma base de données MySQL. Seulement j'ai un problème d'argument.
Voici donc les différentes parties de mon code puis le message d'erreur en espérant que vous saurez me décoincer ;)
Voici la partie de mon formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<jbpm:datacell>
<f:facet name="header">
<h:outputText value="Produit desire: "/>
</f:facet>
<h:selectOneMenu value="#{genList.value}">
<f:selectItems value="#{genList.items}" />
</h:selectOneMenu>
</jbpm:datacell> |
Voici ensuite mon genList.java :
Code:
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
|
public class genList {
private String value="";
private Connection conn;
public genList() {}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public Collection getItems() {
Collection items = new ArrayList();
SelectItem si = null;
try{
//-- Connexion
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/databaseName", "root", " ");
//-- Creation du statement et de la requete
Statement stmt = conn.createStatement();
String requete = null;
requete = "SELECT ID_,NOM_ FROM materiel";
//-- Execution de la requete
ResultSet rs = stmt.executeQuery(requete);
//-- Lecture des donnees
while (rs.next())
{
si = new SelectItem (String.valueOf(rs.getInt(1)), rs.getString(2));
items.add(si);
}
//-- Deconnexion
conn.close();
} catch(Exception e){
System.out.println("\n\n\nCONNEXION ECHOUEE: "+e+"\n\n\n");
System.exit(-1);
}
return items;
}
} |
Voici ce que j'ai créé dans le Face Config (c'est tout ce que j'ai fais dans ce fichier) :
Code:
1 2 3 4 5 6
|
<managed-bean>
<managed-bean-name>genList</managed-bean-name>
<managed-bean-class>com.demande.action.genList</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean> |
Et finalement voici l'erreur que j'ai :
Argument Error: An option for component j_id48 was not an instance of javax.faces.model.SelectItem. Type found: java.util.ArrayList.
(j_id48 étant le nom donné automatiquement à ma combo box.)
Je ne comprends pas pourquoi cette erreur est présente et si l'un d'entre vous est capable de m'aider, j'en serais très reconnaissant.
Merci pour votre attention et votre aide,
Richard T.