2011-06-27 1 views
6

Je veux remplir un selectonemenu mais toujours je cette erreur:selectonemenu avec l'erreur java.lang.String ne peut pas être jeté à javax.faces.model.SelectItem

java.lang.String cannot be cast to javax.faces.model.SelectItem 

Voici le code:

public class ToolsJIRA implements Serializable{ 

private String myChoicePeriod; 

//getters and setters 
} 

JSF:

<h:selectOneMenu value="#{ToolsJIRA.myChoicePeriod}"> 
        <f:selectItem itemValue="Month" value="Month"/> 
        <f:selectItem itemValue="Week" value="Week"/> 
        <f:selectItem itemValue="Year" value="Year"/> 
    </h:selectOneMenu> 

J'ai trouvé que je devrais écrire un convertisseur mais je ne sais pas pourquoi? Parce que j'ai vu un exemple de travail sans convertisseur?

merci

Répondre

19

Essayez ce code dans votre page Web

<h:selectOneMenu value="#{checkBoxBean.myChoicePeriod}"> 
       <f:selectItem itemValue="Month" /> 
       <f:selectItem itemValue="Week" /> 
       <f:selectItem itemValue="Year" /> 
      </h:selectOneMenu> 

Ne pas utiliser la valeur d'attribut son BUT à des fins différentes

2

h:selectOneMenu comme value accepte collection de SelectItem et vous avez passé String et donc l'exception.

+0

oui je l'ai remarqué, mais j'ai suivi ce lien: http: //www.mkyong.com/jsf2/jsf-2-dropdown-box -example/ – rym

+0

Il est jsf2.0 et semble que vous l'essayez sur jsf.1.2 ou peut être comparer précisément –

+0

@@ Jigar Joshi, je suis en utilisant JSF2 – rym

3

La réponse est « un peu » en retard, mais sans doute la meilleure solution est:

<h:selectOneMenu value="#{ToolsJIRA.myChoicePeriod}"> 
        <f:selectItem itemLabel="Month" itemValue="Month"/> 
        <f:selectItem itemLabel="Week" itemValue="Week"/> 
        <f:selectItem itemLabel="Year" itemValue="Year"/> 
    </h:selectOneMenu> 

PS Bien que ce soit une réponse tardive je l'ai posté pour d'autres qui vont faire face au même problème

Questions connexes