ゆるふわ直感操作言語phpばかり触ってたので、久々のjavaは厳格ったらありゃしない。phpでは感覚で作れた多次元連想配列も、javaではarraylistとhashmapを駆使して作るらしい。作るには作れたけど、jsp側での参照方法がわからなくて苦戦した。
■Controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>(); Map<String, String> crab1 = new HashMap<String, String>(); crab1.put( "name" , "タラバ蟹" ); crab1.put( "marketPrice" , "10,000" ); crab1.put( "deliciousParts" , "脚" ); list.add(crab1); Map<String, String> crab2 = new HashMap<String, String>(); crab2.put( "name" , "毛蟹" ); crab2.put( "marketPrice" , "8,000" ); crab2.put( "deliciousParts" , "カニ味噌" ); list.add(crab2); model.addAttribute( "crab_list" ,list); // "カニ味噌"を取得 // System.out.println(list.get(0).get("deliciousParts")); |
■jsp
1 2 3 4 5 | < c:forEach items = "${crab_list}" var = "crab" > 蟹といえば、< c:out value = "${crab.name}" />!! 相場は< c:out value = "${crab.marketPrice}" />円 食べるならやっぱり< c:out value = "${crab.deliciousParts}" /> </ c:forEach > |
mapのforeachは、プロパティ(key、value)を指定した参照方法はたくさん出てくるんだけど上記の方法はなかなか検索ヒットしなくて苦戦した。検索の仕方が悪いのか?