2011-06-27 14 views
6

quiero llenar un selectonemenu pero siempre tengo este error:selectonemenu con el error java.lang.String no se puede convertir a javax.faces.model.SelectItem

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

este es el código:

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> 

he encontrado que yo debería escribir un convertidor pero no sé por qué? porque he visto algunos ejemplos de trabajo sin un convertidor?

agradecimiento

Respuesta

19

Prueba este código en en su página web

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

No utilice valor del atributo de su inteded para diferentes fines

2

h:selectOneMenu como value acepta colección de SelectItem y pasó String y así la excepción.

+0

sí, lo he notado, pero seguí este enlace: http: //www.mkyong.com/jsf2/jsf-2-dropdown-box -example/ – rym

+0

Es jsf2.0 y parece que lo está intentando en jsf.1.2 o se puede comparar con precisión –

+0

@@ Jigar Joshi, estoy usando JSF2 – rym

3

la respuesta es "un poco" tarde, pero probablemente la mejor solución es:

<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 Aunque es una respuesta tardía, la publiqué para otros que enfrentarán el mismo problema

Cuestiones relacionadas