Kotaro Ishizaki
k_taro.****@sea*****
2011年 1月 31日 (月) 21:43:53 JST
浅見様 石崎です。 TextFieldからDropDownChoiceに変更したということでしたら CompoundPropertyModelを使用しているので DropDownChoiceに対してChoiceRendererを実装してあげればいいと思います。 テストしたソースを記載します。 参考までにどうぞ。 以上です。 public class WicketMlPage extends WebPage { // ドロップダウン選択リスト final List<DropItem> choiceList = Arrays.asList( new DropItem("1", "Fast"), new DropItem("2", "Slow")); public WicketMlPage(){ //form Form<Void> form = new Form<Void>("form"); add(form); //テーブルitem final ListView<ListElement> view = new ListView<ListElement>("searchlist", getSearchList()){ private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<ListElement> item) { final ListElement elem = item.getModelObject(); item.setModel(new CompoundPropertyModel<ListElement>(elem)); item.add(new Label("id")); //ドロップダウン選択 item.add(new DropDownChoice<DropItem>("dropChoice", choiceList, new IChoiceRenderer<DropItem>(){ private static final long serialVersionUID = 1L; public Object getDisplayValue(DropItem object) { return object.label; } public String getIdValue(DropItem object, int index) { return object.cd; } })); item.add(new TextField<String>("nameLabel")); } }; form.add(view); //submitボタン form.add(new Button("submitBtn"){ private static final long serialVersionUID = 1L; @Override public void onSubmit() { System.out.println("submit..."); for(ListElement list : view.getModelObject() ){ System.out.println("id=" + list.id ); System.out.println("nameLabel=" + list.nameLabel ); System.out.println("dropChoice=" + list.dropChoice.getLabel() ); } System.out.println(); super.onSubmit(); } }); } //リストデータ生成(DBからの取得) private ArrayList<ListElement> getSearchList() { ArrayList<ListElement> list = new ArrayList<ListElement>(); list.add(new ListElement("car", "車")); list.add(new ListElement("bus", "バス")); list.add(new ListElement("train", "電車")); return list; } // DropItemの項目 public class DropItem implements IClusterable { private static final long serialVersionUID = 1L; private String cd; private String label; public DropItem(String cd, String label){ this.cd=cd; this.label=label; } (ゲッターセッターのため省略) } public class ListElement implements IClusterable { private static final long serialVersionUID = 1L; private String id; private String nameLabel; private DropItem dropChoice; public ListElement(String id, String name){ this.id=id; this.nameLabel=name; this.dropChoice = new DropItem("1", "Fast"); } (ゲッターセッターのため省略) } }