J'ai un problème concernant l'initialisation d'une liste. J'ai 2 codes qui me semblent tous 2 cohérents et qui ne se comportent pour autant pas de la même manière.

Code ok

JSF:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
...
<h:outputLabel id="typeLabel" for="typeListBox" value="Type"/>
<h:selectOneMenu id="typeListBox" styleClass="selectOneMenu" value="#{productionProblem.problemType}">
	<f:selectItems id="typeListBoxValues" value="#{productionProblemValueProvider.problemTypes}"/>
</h:selectOneMenu>
...
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
 
...
public class ProductionProblem extends NamedObject {
...
	/** Type de problème */
	private ProblemType problemType;
...
	public ProblemType getProblemType() {
		return problemType;
	}
 
	public void setProblemType(ProblemType problemType) {
		this.problemType = problemType;
	}
}
Je précise que j'ai créé un Converter associé à la classe ProblemType.

Code ko

JSF :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<h:outputLabel id="typeLabel" for="typeListBox" value="Type"/>
<h:selectOneMenu id="typeListBox" styleClass="selectOneMenu" value="#{productionProblemController.productionProblem.problemType}">
	<f:selectItems id="typeListBoxValues" value="#{productionProblemValueProvider.problemTypes}"/>
</h:selectOneMenu>
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
 
...
public class ProductionProblemController implements Serializable {
...
	/** problème de production à traiter */
	private ProductionProblem productionProblem;
 
	public ProductionProblem getProductionProblem() {
		return productionProblem;
	}
 
	public void setProductionProblem(ProductionProblem productionProblem){
		this.productionProblem = productionProblem;
	}
}
Le code de ProductionProblem étant le même.

Dans ce cas, j'obtiens l'erreur suivante :
java.lang.IllegalArgumentException: Value is no String

Y'a t-il un paramétrage supplémentaire à faire lorsqu'on souhaite faire de la binder une propriété d'un Bean elle même Bean ?

Le problème est-il ailleurs ?

Merci pour votre aide !