###前提・実現したいこと
拡張for文を利用して値を取り出したい。
DBから受け取った項目をHashMapに格納し、そのHashMapをArrayListに格納しています。
また、処理は通常のJavaクラス、出力はJSP、仲人はservletとなっております。
JSPにはservletから後述のListにアクセスできるBookクラスのインスタンスを渡しています
###発生している問題・エラーメッセージ
条件式 String key : マップ.setKey において、Map<String String>にもかかわらずobujectをStringに変換できませんとでます。
###該当のソースコード
Java
1//bookクラス DBから受け取ったデータを保持と、それに関する操作機能------------------- 2//省略 3private Map<String, String> bookData = new HashMap<>(); 4private List<Map> bookList = new ArrayList<>(); 5//DBから受け取るメソッド 6//接続処理省略 7 while(rs.next()) { 8 bookData.clear(); 9 bookData.put("title",rs.getString(1) ); 10 bookData.put("author", rs.getString(2)); 11 bookData.put("publisher", rs.getString(3)); 12 bookData.put("price", rs.getString(4)); 13 bookList.add(bookData); 14 } 15//JSPから利用するgetter 16 public List<Map> getList() { 17 return bookList; 18 } 19 20//出力JSP------------------------------ 21 <% 22 Book book = (Book)request.getAttribute("book"); 23 List<Map> list = book.getList(); 24%> 25 26 <% 27 for(int i = 0; i < list.size(); i++) { 28 for(String key : list.get(i).keySet()) { %> //←この部分にIDEから前述のエラー表記 29 //処理
###試したこと
Map.entryの使用も試みましたが同様の結果に。
<%=list.get(0).get("publisher")%>のように取得すると値は格納されていることを確認。
###補足情報(言語/FW/ツール等のバージョンなど)
Java8,IDEはnetbeans
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/22 07:03