Javaプログラミング/Javaプログラミング関連情報

主なGUIコンポーネントの利用(4ページ目)

JSFに用意されているGUI作成用の主なコンポーネントについて、その基本的な使い方を説明していきましょう。

執筆者:掌田 津耶乃

複数項目を選択する場合の処理


一覧リストの場合、注意しておく必要があるのは、「複数項目が選択可能な場合」の処理です。<h:selectManyListbox>を使うと、複数の項目が選択できますが、その場合、Bean側でgetValueされる値はどうなるのでしょうか。

実は、valueはString配列として値が設定されるようになっているのです。このため、getValueする際にはString配列にキャストして取り出してやる必要があります。実際に簡単な例を挙げておきましょう。

<h:outputText value="これは、JSFによる表示です。" id="text1"
  binding="#{page1Bean.text1}" escape="false" />
<h:form>
  <h:selectManyListbox id="select1" binding="#{page1Bean.select1}">
    <f:selectItem itemLabel="Windows" itemValue="Windows" />
    <f:selectItem itemLabel="Linux" itemValue="Linux" />
    <f:selectItem itemLabel="Mac OS X" itemValue="Mac OS X" />
  </h:selectManyListbox>
  <h:commandButton value="送信" action="#{page1Bean.button1_action}" />
</h:form>

ざっとこんなコンポーネントを用意しておきましょう。そして送信先のpage1Bean.button1_actionで、選択されている項目を取り出し表示してみます。

private HtmlOutputText text1;
private HtmlSelectManyListbox select1;

public HtmlOutputText getText1() {
  return text1;
}
public void setText1(HtmlOutputText text1) {
  this.text1 = text1;
}

public HtmlSelectManyListbox getSelect1() {
  return select1;
}
public void setSelect1(HtmlSelectManyListbox select1) {
  this.select1 = select1;
}

public String button1_action(){
  String[] arr = (String[])select1.getValue();
  String res = "";
  for(String s : arr){ res += s + ""; }
  text1.setValue(res);
  return null;
}

複数項目を選択して送信すると、選択した項目をすべて表示する。

ここでは、(String[])select1.getValue()というようにしてString配列として値を取り出し、それを繰り返しで順に取り出して変数にまとめています。このように配列を繰り返し処理するのが複数項目を選択するコンポーネントの基本、と考えればよいでしょう。
【編集部おすすめの購入サイト】
楽天市場で Java 関連の書籍を見るAmazon で Java 関連の書籍を見る
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます