JSF2.2入門 第11回ELでArrayListとHashMap


kanban11

katatsumuriマネージドビーンのArrayListとHashMapにアクセス

前回は配列までのアクセス方法について説明しましたが、今回はArrayListとHashMapについてです。ArrayListはサイズが可変の配列でadd()メソッドでどんどん要素追加できます。HashMapはmap.put(キー,値)という方法で要素追加しmap.get(キー)で要素を参照できます。

leafマネージドビーン

マネージドビーンに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;
}
・・・
}

leafJSFページ/ArrayList

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]}”/>

el5arraylist

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>

el6arraylist2

なおこれらの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”>

leafJSFページ/HashMap

HashMapへのアクセスについて説明します。

HashMapのキーを指定します。カッコとシングルクォーテーションを使います。ごく自然ですね。

<h:outputText value=”#{bookBean.map[‘吾輩’]}”/>
<h:outputText value=”#{bookBean.map[‘苦沙弥先生’]}”/>

el5hashmap

次のようにピリオドを使ったアクセスは、漢字を使っているので難しいかなと思いましたが、実は問題なく実行できます。

<h:outputText value=”#{bookBean.map.吾輩}”/>
<h:outputText value=”#{bookBean.map.苦沙弥先生}”/>

 

previousnext

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

同書籍のPDF版は私自身が運営するこちらのサイトから直接購入できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA