我想用 sql 查询从数据库中提取的值填充 selectOneMenu 组件。查询仅返回我想作为值输入到 selectOneMenu 的商店名称
我得到 java.lang.IllegalArgumentException 堆栈开始于:
java.lang.IllegalArgumentException at com.sun.faces.renderkit.SelectItemsIterator.initializeItems(SelectItemsIterator.java:216)
at com.sun.faces.renderkit.SelectItemsIterator.hasNext(SelectItemsIterator.java:135)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:762)
这是我的 xhtml 代码(这是 selectItems 的唯一用途):
<h:selectOneMenu id="storeName" value="#{shoplist.store}">
<f:selectItems value="#{buyHistory.stores}" />
</h:selectOneMenu>
这是来自 buyHistory bean 的查询:
public ResultSet getStores() throws SQLException {
...
PreparedStatement getStores = connection.prepareStatement(
"SELECT distinct STORE_NAME "
+ "FROM BuyingHistory ORDER BY STORE_NAME");
CachedRowSet rowSet = new com.sun.rowset.CachedRowSetImpl();
rowSet.populate(getStores.executeQuery());
return rowSet;
}
我究竟做错了什么?我应该以某种方式从 resultSet 转换为 SelectItem 数组/列表吗?