wicket的DropDownChoice控件设置key,value和取值,设置默认值

List<Kind> oneLevelKindList = kindService.getList();

    final DropDownChoice oneLevelKind = new DropDownChoice("oneLevelKind",new Model(),oneLevelKindList);
        oneLevelKind.setChoiceRenderer(new IChoiceRenderer() {
            public Object getDisplayValue(Object o) {     //设置displayName
                Kind k = (Kind) o;
                return k.getName();
            }

            public String getIdValue(Object o, int arg1) {    //设置Value
                Kind k = (Kind) o;
                return String.valueOf(k.getId());
            }
        });
        oneLevelKind.setLabel(new Model("所属类别"));
        oneLevelKind.setRequired(true);

这里要填入一个new Model(),第三个参数是List<Kind>

之后在onSubmit方法里面使用getModelValue方法取出:

            public void onSubmit(){
                if(kindService.checkExistByName(kind.getName())){
                    info("二级商品种类名已存在!");
                }
                else{
                    kind.setParentId(Long.parseLong(oneLevelKind.getModelValue()));
                    kind.setLevel(2);                   
                    kindService.saveObject(kind);
                    this.setResponsePage(CreateResult.class);                   
                }
            }

DropDownChoice设置默认值十分简单,只需要设置一个有初始值的Model就可以了,例子:

    List list = new ArrayList();

    list.add("A");

    list.add("B");

    final DropDownChoice dropdownchoice = new DropDownChoice("dropdownchoice",new Model("B"),list);

    要注意Model的值要对应list里面的项,如果list里面放的是其它对象,那么Model的值就要放其它对象,例如:

    List list = new ArrayList();

    list.add(new User("Tom"));

    list.add(new User("Jason"));

    final DropDownChoice dropdownchoice = new DropDownChoice("dropdownchoice",new Model(new User("Jason")),list);

你可能感兴趣的:(wicket)