マネージドビーンのArrayListとHashMapにアクセス
前回は配列までのアクセス方法について説明しましたが、今回はArrayListとHashMapについてです。ArrayListはサイズが可変の配列でadd()メソッドでどんどん要素追加できます。HashMapはmap.put(キー,値)という方法で要素追加しmap.get(キー)で要素を参照できます。
マネージドビーン
マネージドビーンにArrayListとHashMapを使った例は次のとおりです。コンストラクタで値はセットしています。それらのゲッターとセッターは普通に用意します。
public class BookBean implements Serializable{
String title;
String auther;
Detail bookdetail;
String[] bungakuShubetsu=new String[2];
ArrayList<String> toujoujinbutsu=new ArrayList();
HashMap<String,String> map=new HashMap();
public BookBean() {
title=”吾輩は猫である”;
auther=”夏目漱石”;
bookdetail=new Detail(“1905-10-06″,500,”服部書店”);
bungakuShubetsu[0]=”日本文学”;bungakuShubetsu[1]=”小説”;
toujoujinbutsu.add(“吾輩”);toujoujinbutsu.add(“車屋の黒”);toujoujinbutsu.add(“三毛子”);toujoujinbutsu.add(“苦沙弥先生”);
map.put(“吾輩”,”猫”);map.put(“車屋の黒”,”猫”);map.put(“三毛子”,”猫”);map.put(“苦沙弥先生”,”人間”);
}
・・・
public HashMap<String, String> getMap() {
return map;
}
public void setMap(HashMap<String, String> map) {
this.map = map;
}
public ArrayList<String> getToujoujinbutsu() {
return toujoujinbutsu;
}
public void setToujoujinbutsu(ArrayList<String> toujoujinbutsu) {
this.toujoujinbutsu = toujoujinbutsu;
}
・・・
}
ArrayListへのアクセス方法について説明します。
1.個々の要素の参照
配列と同様にインデックスを指定してアクセスできます。
<h:outputText value=”#{bookBean.toujoujinbutsu[0]}”/>
<h:outputText value=”#{bookBean.toujoujinbutsu[1]}”/>
<h:outputText value=”#{bookBean.toujoujinbutsu[2]}”/>
<h:outputText value=”#{bookBean.toujoujinbutsu[3]}”/>
2.c:forEach
配列と同じ方法で適用できます。表示は前の例と同じ。
<c:forEach var=”item” items=”#{bookBean.toujoujinbutsu}”>
#{item}
</c:forEach>
3.ui:repeat
これも配列のときと同じです。panelGridを使った場合でも1要素として1セルに入ります。
<ui:repeat var=”item” value=”#{bookBean.toujoujinbutsu}”>
#{item},
</ui:repeat>
なおこれらのcやuiタグを使うにはJSFページのxhtmlで次のようしておく必要があります。
<html xmlns=”http://www.w3.org/1999/xhtml”
xmlns:h=”http://xmlns.jcp.org/jsf/html”
xmlns:c=”http://xmlns.jcp.org/jsp/jstl/core”
xmlns:ui=”http://xmlns.jcp.org/jsf/facelets”>
HashMapへのアクセスについて説明します。
HashMapのキーを指定します。カッコとシングルクォーテーションを使います。ごく自然ですね。
<h:outputText value=”#{bookBean.map[‘吾輩’]}”/>
<h:outputText value=”#{bookBean.map[‘苦沙弥先生’]}”/>
次のようにピリオドを使ったアクセスは、漢字を使っているので難しいかなと思いましたが、実は問題なく実行できます。
<h:outputText value=”#{bookBean.map.吾輩}”/>
<h:outputText value=”#{bookBean.map.苦沙弥先生}”/>


JSF2.2のすべてをまとめたkindle電子書籍 「JavaServer Faces2.2 入門」もぜひご覧ください。パソコン、iPhone、Androidどんな端末用にもamazonが無料のKindle電子書籍リーダーを用意しています。それをつかってKindle本を手軽にお楽しみください。あなたが今お使いの端末用Kidle電子書籍リーダーのご案内