我想填写一个selectonemenu但总是有这个错误:
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>
我发现我应该写一个转换器,但我不知道为什么?因为我看过一些没有转换器的例子吗?
谢谢
答案 0 :(得分:21)
在您的网页中试用此代码
<h:selectOneMenu value="#{checkBoxBean.myChoicePeriod}">
<f:selectItem itemValue="Month" />
<f:selectItem itemValue="Week" />
<f:selectItem itemValue="Year" />
</h:selectOneMenu>
不要使用其出于不同目的的值属性
答案 1 :(得分:4)
答案是&#34;一点点&#34;迟到但可能最好的解决方案是:
<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>
P.S。虽然是一个迟到的答案,但我会将其发布给其他将面临同样问题的人
答案 2 :(得分:2)
h:selectOneMenu
作为value
接受SelectItem
的集合,您通过了String
,因此异常。