JSF2 : Erreur de conversion et "null Converter"
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 :
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
| 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;
}
} |
Mon bean
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
| @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;
}
} |
Ma jsf
Code:
1 2 3 4
| <h:selectOneMenu value="#{TemplateBean.templateValueTpl}">
<f:selectItems value="#{TemplateBean.templates}" var="e"
itemLabel="#{e.name}" itemValue="#{e}" />
</h:selectOneMenu> |
Je reçois le message d'erreur quand je veux récupérer la valeur sélectionnée dans ma comboBox.
La même chose mais en utilisant du String comme valeur de retour ne pose aucun problème.
Code:
1 2 3 4
| <h:selectOneMenu value="#{TemplateBean.templateValueString}">
<f:selectItems value="#{TemplateBean.templates}" var="e"
itemLabel="#{e.name}" itemValue="#{e.content}" />
</h:selectOneMenu> |
Une idée de ce que je dois faire pour pouvoir bosser avec des Objets au lieu des Strings ?
Merci d'avance.