Bonjour à tous,
Je débute avec JSF2 et j'ai un comportement que je ne comprends pas en utilisant une combobox.
Voici mon message d'erreur : • Erreur de conversion lors de la définition de la valeur 'be.templates.Template@84f68f' pour 'null Converter'.
Et mon code :
Mon 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 public class Template { private String name ; private String content ; public Template(String name, String content) { this.name = name; this.content = content; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
Ma jsf
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 @ManagedBean(name = "TemplateBean") @SessionScoped public class TemplateBean implements Serializable{ private String templateValueString; private Template templateValueTpl ; private Template[] templates ; public String getTemplateValueString() { return templateValueString; } public void setTemplateValueString(String templateValueString) { this.templateValueString = templateValueString; } public Template[] getTemplates() { Template[] templates = new Template[3] ; templates[0] = new Template("tpl1", "aaa") ; templates[1] = new Template("tpl2", "bbb") ; templates[2] = new Template("tpl3", "ccc") ; return templates; } public void setTemplates(Template[] templates) { this.templates = templates; } public void apply () { System.out.println (templateValueString) ; System.out.println (templateValueTpl) ; } public Template getTemplateValueTpl() { return templateValueTpl; } public void setTemplateValueTpl(Template templateValueTpl) { this.templateValueTpl = templateValueTpl; } }
Je reçois le message d'erreur quand je veux récupérer la valeur sélectionnée dans ma comboBox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h:selectOneMenu value="#{TemplateBean.templateValueTpl}"> <f:selectItems value="#{TemplateBean.templates}" var="e" itemLabel="#{e.name}" itemValue="#{e}" /> </h:selectOneMenu>
La même chose mais en utilisant du String comme valeur de retour ne pose aucun problème.
Une idée de ce que je dois faire pour pouvoir bosser avec des Objets au lieu des Strings ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h:selectOneMenu value="#{TemplateBean.templateValueString}"> <f:selectItems value="#{TemplateBean.templates}" var="e" itemLabel="#{e.name}" itemValue="#{e.content}" /> </h:selectOneMenu>
Merci d'avance.
Partager