質問: 0; i < list.size(); i++) { for(String key : list.get(i).keySet()) { %> //←この部分にIDEから前述のエラー表記 //処理 ``` ### 試したこと Map.entryの使用も試みましたが同様の結果に。 <%=list.get(0).get("publisher")%>のように取得すると値は格納されていることを確認。 ### 補足情報(言語/FW/ツール等のバージョンなど) Java8,IDEはnetbeans
回答: 型情報が足りていません。 Listの中のMapのジェネリクスが省略されてObjectということになっています。 ``` //List list = book.getList(); List> list = book.getList(); ``` できればサーブレット側もMapの中身が不明なのでジェネリクスのご利用を推奨します。 ``` private List> bookList = new ArrayList<>(); ``` ちょっと全体的に不安なコードに見えます。 取得してきたデータが1件ならば正しく動いているように見えますが、 Mapの初期化するタイミングが危ないです。 バグにつながる可能性が高いです。 ``` while(rs.next()) { //bookData.clear(); Map bookData = new HashMap<>(); ``` ここ↑でMapインスタンス生成してlistにaddしないと、 listの中身はすべて同じmapを参照することになります。 この動きが意図的ということでしたらすみません。