エルコムウォーク 田中
tanak****@elcom*****
2010年 8月 9日 (月) 14:42:50 JST
田中です。 RadioGroupを使ったラジオボタンの作り方が良く分からなかったので投稿しました。 RadioGroupのコンポーネントにPropertyModelでbookVOの『naiyouShubetsu』という項目と結びつけています。 登録処理の時は、フォーム画面からの入力(ラジオボタン選択)がbookVOの『naiyouShubetsu』にセットされDBに登録されたのですが、更新処理で、DBから値を取ってきて、bookVOにセットしても、ラジオボタンがその値に設定されません。 下の[※]のところで、 bookVO.setNaiyouShubetsu(nakyoushubetsuMenu.getItem(bookVO.getNaiyouShubetsu())); などと設定しなおす一行を入れると、ラジオボタンに設定されて画面表示されます。 RadioChoiceを使った場合はこのようなことをしなくてもラジオボタンに設定されたのですが、RadioGroupを使う場合はこのように設定しなおすものなのでしょうか? (最初、RadioChoiceを使ってやっていたのですが、ラジオボタンとラベルのレイアウトがどうしてもくずれてしまうのでRadioGroupを使うことにしました。) ------ HTML -------- <span wicket:id="widRadioGroup_naiyouShubetsu"> <span wicket:id="widRadio_naiyouShubetsuListView"> <input type="radio" name="NAIYOU_SHUBETSU" wicket:id="widRadioItem_radio"> <span wicket:id="widRadioItem_label"></span> </span> </span> ------------------------- ------ Java -------- RadioChoiceHelper naiyouShubetsuModeRadio = new RadioChoiceHelper("naiyouShubetsuModeRadio"); RadioGroup widRadioGroup_naiyouShubetsu = new RadioGroup("widRadioGroup_naiyouShubetsu", new PropertyModel(bookVO, "naiyouShubetsu")); widForm_form.add(widRadioGroup_naiyouShubetsu); ListView widRadio_naiyouShubetsuListView = new ListView("widRadio_naiyouShubetsuListView", naiyouShubetsuModeRadio.getSelectMenu()) { @Override protected void populateItem(ListItem item) { // TODO 自動生成されたメソッド・スタブ item.add(new Radio("widRadioItem_radio", item.getModel())); item.add(new Label("widRadioItem_label", item.getModelObject().toString())); } }; [※] widRadioGroup_naiyouShubetsu.add(widRadio_naiyouShubetsuListView); -------------------------