<h:selectOneMenu id="reportType" style="width:175px" value="#{pageDemoSearchBean.status}">
<f:selectItems value="#{pageDemoSearchBean.vehicleStatus}" />
</h:selectOneMenu>
我正在使用JSF 1.2
这行代码抛出classCastException
java.lang.String无法强制转换为javax.faces.model.SelectItem
如果在f:selectItems标签中用“itemValue”替换“value”,则会给出另一个异常,告诉
根据TLD ,itemValue对于selectItems不正确
答案 0 :(得分:1)
在JSF 1.x中,无法提供List<T>
作为<f:selectItems value>
。它只支持List<javax.faces.model.SelectItem>
。
以下是正确使用的启动示例,从我们的selectonemenu tag wiki page(使用JSF 2.x编写的内容)进行复制,因此请考虑一些示例不适用于侏罗纪JSF 1.x):
<h:form>
<h:selectOneMenu value="#{bean.selectedItem}">
<f:selectItem itemValue="#{null}" itemLabel="-- select one --" />
<f:selectItems value="#{bean.availableItems}" />
</h:selectOneMenu>
<h:commandButton value="Submit" action="#{bean.submit}" />
</h:form>
private String selectedItem; // +getter +setter
private List<SelectItem> availableItems; // +getter (no setter necessary)
@PostConstruct
public void init() {
availableItems = new ArrayList<SelectItem>();
availableItems.add(new SelectItem("foo", "Foo label"));
availableItems.add(new SelectItem("bar", "Bar label"));
availableItems.add(new SelectItem("baz", "Baz label"));
}