質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

Q&A

1回答

11534閲覧

JSF 2.2 selectOneRadioをテーブル一覧に出力させるには

ghotst_in0609

総合スコア15

JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

0グッド

0クリップ

投稿2016/08/09 13:06

編集2016/08/09 13:45

JSF2.2を使用し、
テーブル一覧上にラジオボタンを表示しようと考え以下の記載をおこないました。
<ui:repeat var="row" value="#{XXBean.XXXList}">

<tr> <td> <h:selectOneRadio id="Id" value="#{row.id}"> <f:selectItem itemValue="#{row.id}"/> </h:selectOneRadio> </td> <td>#{row.name}</td> </tr> </ui:repeat>

上記内容で記載をおこなったところ、
全ての行にradioボタンがチェックされた状態で表示されます。
どうしたら、全ての行に対し、一つだけ選択されるようなラジオボタンを表示する事が出来ますでしょうか?
ご教授頂ければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

先月の投稿で自己解決されているかもしれませんが・・・

こちらの記事より、結果から普通のJSFでやろうとすると無理らしいです。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29164&forum=12

各ラジオボタンのアラートの値を見ていただくと理解しやすいと思うのですが
ui:repeatで作成した場合だと、nameが異なり別のグループと認識してしまうことが原因です。

<h:selectOneRadio id="Id" onclick="javascript:alert(this.name);"> <f:selectItem itemValue="1" itemLabel="普通のラジオ1" /> <f:selectItem itemValue="2" itemLabel="普通のラジオ2" /> </h:selectOneRadio> <ui:repeat var="row" value="#{XXBean.XXXList}" onclick="javascript:alert(this.name);"> <h:selectOneRadio id="Id" value="#{row.id}"> <f:selectItem itemValue="#{row.id}"/> </h:selectOneRadio> </ui:repeat>

ラジオボタンとラベルを別々にJSFの標準デザイン以外で出したい。
というような話でしたら、先ほどの記事であった
MyFacesの拡張コンポーネント(tomahawk)を利用すればよいかなと。

けど難しいことはわからない!やりたくないぞ!ならば、
HTMLで記載すればまぁいけるんじゃないかと。
ダメ?

HTML

1<ui:repeat var="row" value="#{XXBean.XXXList}" varStatus="stat"> 2 <input type="radio" name="radioGroup" id="radio#{stat.index}" value="#{row.id}" onclick="javascript:setval(this.value);"/> 3 <label for="radio#{stat.index}">#{row.name}</label> 4</ui:repeat> 5 6<h:inputHidden id="radioValueReceive" value="#{XXBean.radioValue格納変数}"/> 7 8<script> 9function setval(rval) { 10 //ラジオボタンの選択値を、Beanにセット 11 document.getElementById('formid:radioValueReceive').val=rval; 12} 13</script>

投稿2016/09/21 07:26

Pireko

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問