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配列/リストに変換する必要がありますか?