设置冰上的列表项目:SelectoneMenu
-
08-10-2019 - |
题
我希望将项目从列表中设置为ICEFACES中的SelectoneMenu。但是当我这样做时,我会收到以下错误:java.lang.classcastexception:不能施放到javax.faces.model.selectitem
是一个实体类。
请帮忙。
解决方案
创建和填充的正常方式 selectOneMenu
项目将是以下内容:
private String selectedItem; // +getter +setter
private List<SelectItem> selectItems; // +getter
public Bean() {
selectItems = new ArrayList<SelectItem>();
for (Entity entity : getYourEntities()) {
selectItems.add(new SelectItem(entity.getValue(), entity.getLabel()));
}
}
在视图中使用以下内容(您可以轻松地sidite <h:
和 <ice:
):
<h:selectOneMenu value="#{bean.selectedItem}">
<f:selectItems value="#{bean.selectItems}" />
</h:selectOneMenu>
代替 String
价值,您也可以使用任何 Number
(Integer
, Long
, ,等),因为JSF为此具有内置转换器。但是,如果要使用整个对象作为项目值,则需要创建一个 Converter
. 。这是详细描述的 本文.
不隶属于 StackOverflow