uji:radioButtonについて説明します。uji:radioButtonには、以下の機能があります。
また、ブラウザによる対応状況についても説明します。
基本機能
uji:radioButtonタグは、ラジオボタンを作成します。HTMLのFORMタグか、uji:formタグまたはuji:mcFormタグのコンテントで使用します。
uji:radioButtonは、uji:listタグ、uji:tableタグと組み合わせて、リストの要素やテーブルのセルを選択するラジオボタンに使用します。リストやテーブルとは関係なく、ラジオボタンとそのラベルのみを並べて表示する場合は、uji:buttonListを使用してください。ただしタブ順を指定したい場合はリストやテーブルの利用に関係なくuji:radioButtonを使用してください。
ラジオボタンがチェックされると、チェックされたラジオボタンの情報がselectedBean,selectedPropertyアトリビュートで指定されたデータBeanのプロパティにセットされます。
チェックされたラジオボタンの情報の記録方法を以下の3通りから選択でき、pickUpModeアトリビュートで指定します。
ラジオボタンにオブジェクトを対応付け、チェックされたラジオボタンに対応するオブジェクトを記録します。この場合、ラジオボタンに対応付けるオブジェクトをbean, propertyアトリビュートで指定します。指定したオブジェクトが項目クラス(com.fujitsu.uji.compo.RadioButtonModelインタフェースを持つクラス)の場合、そのgetValue()の返すオブジェクトがラジオボタンに対応付けられます。
uji:listRendererタグのコンテントでuji:radioButtonタグを使用している場合、リストの要素番号を記録します。
uji:tableRendererタグのコンテントでuji:radioButtonタグを使用している場合、セルの座標を記録します。座標はcom.fujitsu.uji.compo.TableCoordクラスで表されます。
フォームが送信されると、チェックされたラジオボタンの情報(ラジオボタンに対応づけられたオブジェクト、リストの要素番号、セルの座標のいずれか)がselectedBean, selectedPropertyで指定されたプロパティにセットされます。
ラジオボタンの初期チェック状態は、selectedBean, selectedPropertyで指定されたプロパティの値に従います。
selectedBean, selectedPropertyの指定が同一の場合は同じラジオボタングループとなります。
bean, propertyで指定されたプロパティが項目クラス(com.fujitsu.uji.compo.RadioButtonModelインタフェースを持つクラス)の場合は、その項目クラスで色などのいくつかの書式とラベルを指定することができます。項目クラスとアトリビュートの双方で書式やラベルを設定した場合は、項目クラスの指定が優先されます。
項目クラスの代わりに外付け属性を利用する方法については、“Apcoordinatorユーザーズガイド”を参照してください。
uji:radioButtonタグのアトリビュートは以下を指定します。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
pickUpMode | 可 | 選択されたラジオボタンの情報をデータBeanに記録する方法を指定します。
| object |
bean | 可 | ラジオボタンに対応付けるオブジェクトを指定します。データBeanのJSP変数名で指定します。 | 画面部品タグのカレントオブジェクトを使用します。 |
property | 可 | ラジオボタンに対応付けるオブジェクトを、beanで指定したデータBeanのプロパティ名で指定します。 | beanで指定したオブジェクトをラジオボタンに対応付けます。 |
selectedBean | 不可 | 選択されたオブジェクトを格納するデータBeanをJSP変数名で指定します。 | 省略できません。 |
selectedProperty | 不可 | 選択されたオブジェクトを格納するプロパティを指定します。selectedBeanで指定したデータBeanのプロパティを指定します。 | 省略できません。 |
width | 可 | ボタンの幅を指定します。(*) | 標準の幅となります。 |
height | 可 | ボタンの高さを指定します。(*) | 標準の高さとなります。 |
background | 可 | ボタンの背景色を指定します。(*) | 標準の背景色となります。 |
foreground | 可 | 文字色を指定します。(*) | 標準の文字色となります。 |
fontStyle | 可 | 文字スタイルを指定します。(*) | 標準の文字スタイルとなります。 |
fontWeight | 可 | 文字の太さを指定します。(*) | 標準の太さとなります。 |
fontSize | 可 | 文字の大きさを指定します。(*) | 標準の大きさとなります。 |
textDecoration | 可 | 文字の装飾形式を指定します。(*) | 標準の装飾形式となります。 |
enabled | 可 | 項目の操作の可否をtrue/falseで指定します。 | true |
verticalAlignment | 可 | ボタンの縦位置合わせ方法を指定します。(*) | 標準値となります。 |
tabIndex | 可 | タブ順を数値で指定します。 | 配置順となります。 |
tipText | 可 | マウスポイント時に表示するティップの文字列を指定します。 | 表示しません。 |
label | 可 | ラベルテキストを指定します。 | 表示しません。 |
css | 可 | class属性の属性値を指定します。以下のタグにclass属性を設定します。 | class属性を出力しません。 |
visible | 可 | 項目の表示の有無をtrue/falseで指定します。 | true |
event | 可 | イベント発生時に実行するJavaScriptを記述します。 | イベント発生時にJavaScriptを実行しません。 |
(*)“7.7.1 項目の指定方法”を参照してください。
uji:radioButtonタグのコンテントは記述できません。
JSP
<uji:form method="post" verbs="ok,cancel" beanId="body"> ... <uji:list bean="body" property="list"> <uji:listRenderer type="list"> <UL><uji:children/></UL> </uji:listRenderer> <uji:listRenderer type="element"> <LI> <uji:radioButton pickUpMode="object" selectedBean="body" selectedProperty="foo" /> <uji:getProperty property="name"/> ... </uji:listRenderer> </uji:list> </uji:form>
上記例では、リストの要素としてデータBeanを使用しています。また、"body"と名付けられたデータBeanはプロパティfooを持ちます。リストの要素数と同じだけラジオボタンが表示されますが、それぞれに、リストの要素(データBean)が対応付けられます。
フォームが送信されると、チェックされているラジオボタンに対応付けられたデータBeanが、"body"データBeanのプロパティfooに格納されます。プロパティfooの値を取得することによって、ラジオボタンによってチェックされたリスト要素を得ることができます。以下は表示画面の例です。
表示画面
beanアトリビュートは画面部品タグのレンダラの中で、カレントオブジェクトが利用できる場合にのみ省略できます。
同一画面に複数のフォームがあり、それぞれのフォームでuji:radioButtonタグを使用する場合、selectedBean,selectedPropertyアトリビュートで指定するプロパティが別々になるように指定してください。異なるフォームで同一のプロパティを指定した場合、チェックされたラジオボタンの情報が記録されない場合があります。
フォーム送信時に新規にデータBeanが作成され、入力項目のデータが格納された場合、チェックされたラジオボタンの情報はデータBeanに格納されません。新規にデータBeanが作成されるのは、uji:formタグのbeanClsアトリビュート、または、uji.beanリクエストパラメタが指定されている場合です。ただし、uji:formタグのbeanIdアトリビュートまたはuji.idリクエストパラメタが指定されている場合で、指定されたデータBeanが存在する場合は、既存のデータBeanが使用され新規には作成されません。
各ブラウザでそれぞれのアトリビュートが有効かどうかは“ブラウザ対応状況”を参照してください。
Mccoordinatorで利用する場合で、Webセションレスの場合はpickUpModeを利用することはできません。
XML連携機能
uji:radioButtonタグはラジオボタンを作成します。
イベントモデルではXML連携機能は利用できません。
uji:radioButtonタグでは、XML連携機能を使用する際に以下のアトリビュートを指定します。これ以外のアトリビュートについては、“基本機能”を参照してください。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
bean | 可 | データBeanまたはXMLデータBeanのJSP変数名を指定します。(*) | カレントオブジェクトを使用します。 |
property | 可 | ラジオボタンに対応付ける要素を、ルート要素の子要素名で指定します。(*) | propertyまたはxpathいずれかの指定が必要です。 |
xpath | 可 | ラジオボタンに対応付ける要素または属性を、ルート要素からの相対パスで指定します。(*) | propertyまたはxpathいずれかの指定が必要です。 |
selectedBean | 不可 | 選択されたテキストを格納するXMLデータBeanをJSP変数名で指定します。 | 省略できません。 |
selectedProperty | 可 | 選択されたオブジェクトを格納する要素を、ルート要素の子要素名で指定します。(**) | selectedPropertyまたはselectedXPathのいずれかの指定が必要です。 |
selectedXPath | 可 | 選択されたオブジェクトを格納する要素または属性を、ルート要素からの相対パスで指定します。(**) | selectedPropertyまたはselectedXPathのいずれかの指定が必要です。 |
labelXPath | 可 | ラジオボタンのラベルとなる単純要素または属性を指定します。カレントオブジェクトであるXMLデータBeanまたはbeanで指定したXMLデータBeanのルート要素からの相対パスで指定します。 | labelアトリビュートに従います。 |
(*)“7.6.1 使用するXML要素の指定方法”を参照してください。
(**)pickUpModeにtableを指定した場合、チェックされたラジオボタンの情報の格納先として、XMLデータBeanを使用することはできません。
propertyまたはxpathは単純要素または属性を指定します(*1)。pickUpMode="object"を指定した場合、propertyまたはxpathで指定された要素の内容または属性の値がラジオボタンに対応付けられます。
selectedPropertyまたはselectedXPathは単純要素または属性を指定します(*1)。
labelXPathには単純要素または属性を指定します(*1)。
(*1) 要素の集合を指定した場合の動作は“7.6.3 要素や属性の集合を指定した場合の動作”を参照してください
XML
<root> <list> <item code="SA10203"><name>えんぴつ</name><price>100</price></item> <item code="LT22432"><name>クリップ</name><price>250</price></item> <item code="NN43390"><name>カッター</name><price>510</price></item> </list> </root>
JSP
<uji:form name="order" method="post" verbs="buy,cancel" beanId="body"> <uji:list bean="body" xpath="list"> <uji:listRenderer type="list" > <TABLE border="2"><uji:children/></TABLE> </uji:listRenderer> <uji:listRenderer type="element" > <TR> <uji:composite> <uji:compositeRenderer> <TD> <uji:radioButton pickUpMode="object" xpath="@code" labelXPath="name" selectedBean="body" selectedProperty="rcv" /> <TD> <uji:getProperty xpath="price"/>円 </uji:compositeRenderer> </uji:composite> </TR> </uji:listRenderer> </uji:list> ... </uji:form>
この例では、uji:listタグは、リストの要素としてXMLデータのitem要素を使用します。uji:listRendererタグのコンテントでは、item要素をルート要素としたXMLデータBeanがカレントオブジェクトとなります。item要素のcode属性の値をラジオボタンに対応付けるため、uji:radioButtonタグにxpath="@code"を指定します。また、item要素のコンテントにあるname要素のコンテントをラベルテキストとして使用するため、labelXPath="name"を指定します。
表示画面
イベントモデル
uji:radioButtonタグは、ラジオボタンを作成します。
uji:radioButtonタグは、uji:formタグの中に記述します。
uji:radioButtonタグの動作については、“基本機能”を参照してください。
uji:radioButtonタグは、イベントモデルで使用する際に以下のアトリビュートを指定します。これ以外のアトリビュートについては、“基本機能”を参照してください。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
bean | 可 | managed beanの名前を指定します。 | 画面部品タグのカレントオブジェクトを使用します。 |
property | 可 | ラジオボタンに対応付けるオブジェクトを、beanで指定したmanaged beanのプロパティ名で指定します。 | beanで指定したオブジェクトをラジオボタンに対応付けます。 |
valueChangeListener | 可 | バリューチェンジリスナメソッドをメソッドバインディング式で指定します。 | バリューチェンジリスナメソッドを使用しません。 |
immediate | 可 | 値の変換と検証を処理するフェーズを指定します。
| false |
id | 可 | コンポーネントのIDを指定します。 | 自動的に付与されます。 |
uji:radioButtonタグのコンテントには以下のタグが記述できます。
f:valueChangeListener(0個以上)
JSP
<f:view> <uji:form name="myform" method="post"> ... <uji:list bean="myBean" property="list"> <uji:listRenderer type="list"> <UL><uji:children/></UL> </uji:listRenderer> <uji:listRenderer type="element"> <LI> <uji:radioButton pickUpMode="object" selectedBean="myBean" selectedProperty="selectedItem" /> <uji:getProperty property="name"/> ... </uji:listRenderer> </uji:list> </uji:form> </f:view>
注意事項については、“基本機能”を参照してください。
ブラウザ対応状況
アトリビュート | IE5.5 | IE6 | IE7 | IE8 | Firefox2.0 | Firefox3.0 | Safari2.0 |
---|---|---|---|---|---|---|---|
width | ※1 | ※1 | ※1 | ※1 | ※1 | ※1 | ※2 |
height | ※1 | ※1 | ※1 | ※1 | ※1 | ※1 | × |
background | ○ | ○ | ○ | ○ | × | × | × |
foreground | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
fontStyle | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
fontWeight | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
fontSize | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
textDecoration | ※3 | ※3 | ※3 | ※3 | ○ | ○ | ※3 |
enabled | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
verticalAlignment | ※4 | ※4 | ※4 | ※4 | ○ | ○ | × |
tabIndex | ○ | ○ | ○ | ○ | ○ | ○ | × |
tipText | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
label | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
css | ※5 | ※5 | ※5 | ※5 | ※5 | ※5 | ※5 |
visible | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
※1: 幅または高さの小さいサイズにそった正方形のチェックボックスとなります。
※2: widthはチェックボックス、ラジオボタンとその右側の余白を含めた領域に適用されます。チェックボックス、ラジオボタンのサイズは固定です。
※3: blinkは指定できません。
※4: 実数値+単位は、指定不可です。
※5: CSSを使った設定が実際に表示に反映されるかどうかはブラウザの仕様に依存します。