2011-06-27 45 views
6

我要填寫一個selectOneMenu用於但始終我有這樣的錯誤:selectOneMenu用於與錯誤java.lang.String中不能轉換到javax.faces.model.SelectItem

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

這是代碼:

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> 

我發現,我應該寫一個轉換器,但我不知道爲什麼?因爲我看到一些沒有轉換器的示例工作?

謝謝

回答

19

在網頁試試這個代碼

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

不要使用value屬性及其inteded用於不同的目的

2

h:selectOneMenuvalue接受的SelectItem收集和你通過String等異常。

+0

是的我已經注意到,但我跟着這個鏈接:http://www.mkyong.com/jsf2/jsf-2-dropdown-box -example/ – rym

+0

這是jsf2.0,似乎你正在嘗試它在jsf.1.2或可能比較精確 –

+0

@@ Jigar Joshi,我使用JSF2 – rym

3

答案是「三多一少」晚,但也許是最好的解決辦法是:

<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雖然是一個遲到的答案我張貼給其他誰將面臨同樣的問題

相關問題