VwpFAQBIndCheckboxJa
チェックボックス: チェックボックスを boolean 以外のデータ型にバインドする方法を教えてください。
参照:
http://blogs.sun.com/roller/page/winston?entry=non_boolean_checkbox
チェックボックスには「selected」と「selectedValue」の 2 つのプロパティーがあります。「selected」プロパティーは、単純に表示する目的 (チェックボックスを選択または選択解除された状態で表示する) のために使用されます。
checkbox1.isSelected()」が True を返す) とき、「{checkbox1.getSelected()}」によって返されます。
チェックボックスを
Booleanまたは {boolean} データ型にバインドすると、簡単に機能します。追加のワイヤリングやコーディングなどは必要ありません。
boolean 以外のデータ型 (Integer 型または String 型など) にバインドする必要がある場合、明示的に boolean 型プロパティーを作成し、チェックボックスをそのプロパティーにバインドする必要があります。このプロパティーは取得メソッド (is<プロパティー名>) および設定メソッド (set<プロパティー名>) を持ちます。
たとえば、SMALLINT 型の TRAVEL.PERSON.FREEQUENTFLYER があるとします。この場合、次のようにします。
1. 「表」コンポーネントをドロップし、データベース表 TRAVEL.PERSON をその上にドロップします (この表は SMALLINT 型の FREQUENTFLYER を持つ)。
2. ページに frequentFlyer という名前のプロパティーを boolean 型 (オブジェクト型 Boolean ではなくプリミティブ型 boolean を使用) で作成します。たとえば、「<プロジェクト名>」>「ソースパッケージ」>「<パッケージ名>」>「Page1.java」>「Page1」>「Bean パターン」を右クリックします。「追加」>「プロパティー」を選択します。名前に frequentFlyer、型に boolean と入力して、「了解」をクリックします。
3. Page1.java 内で、取得メソッドと設定メソッドを次のように設定します。
public boolean isFrequentFlyer() { Object value = getValue("#{currentRow.value[PERSON.FREQUENTFLYER]}"); if(value != null){ Integer freqFlyer = (Integer) value; return freqFlyer.intValue()==1? true : false ; } return false; } public void setFrequentFlyer(boolean frequentFlyer) { if(frequentFlyer){ setValue("#{currentRow.value[PERSON.FREQUENTFLYER]}", new Integer(1)); }else{ setValue("#{currentRow.value[PERSON.FREQUENTFLYER]}", new Integer(0)); }; }
4. 「表レイアウト」ダイアログを使用して PERSON.FREQUENTFLYER 列をチェックボックスに変更します。
5.「アウトライン」ウィンドウで、このチェックボックスを右クリックして「データにバインド」を選択し、「オブジェクトにバインド」タブで、ページ Bean の「frequentflyer」プロパティを選択し「了解」をクリックします。プロジェクトを実行して動作を確認します。
詳細は、Sun Java Sturio Creator 2 チュートリアル「データプロバイダ」を参照してください。
- 日本語訳 : Yuko Ohsumi
- 英文 (翻訳したバージョン: 2)
- 日本語 NetBeans Visual Web Pack ユーザー FAQ へ戻る