我有一个List <Hotel>
对象,我需要将它保存到SelectItem[]
对象。我该如何编码呢?
public List <Hotel> hotel;
public SelectItem[] food;
// followed by getters and setters
我需要将hotel
对象保存为food
对象。我如何在Java中编写此代码?
使用SelectItem
对象的构造函数构造具有所需值和标签的对象。例如,以hotel id
为值,hotel name
为标签。
food = new SelectItem[hotels.size()];
for (int i = 0; i < hotels.size(); i++) {
Hotel hotel = hotels.get(i);
food[i] = new SelectItem(hotel.getId(), hotel.getName());
}
顺便说一下,<f:selectItems>
也支持List<SelectItem>
。这样更容易创建。
food = new ArrayList<SelectItem>();
for (Hotel hotel : hotels) {
food.add(new SelectItem(hotel.getId(), hotel.getName()));
}
与具体问题无关,根据您的问题历史记录,您正在使用JSF 2.0。您可以直接在<f:selectItems>
中使用List<Hotel>
,而不需要丑陋的SelectItem
包装器模型。另请参阅您的上一个问题:如何从数据库填充h:selectOneMenu的选项?