从LIstbox ZK中的多个选择中获取价值

时间:2011-06-15 06:06:51

标签: java web-applications zk

我想问一下从Listbox中的多个select中获取值,我的代码是zul,如下所示:

<n:tr>
                <n:td>
                    <label value="Privilege"/>
                </n:td>
                <n:td>
                    <label value=""/>
                </n:td>
                <n:td>
                     <listbox id="designations" model="@{addUser$composer.lstPrivilege}" selectedItem="@{selectedUserAcc, converter=com.nsia.doku.escrow.converter.SelectedItemConverter}" multiple="true" checkmark="true" width="200px">
                                <listitem self="@{each=lstPrivilege}" >
                                    <listcell label="@{lstPrivilege.description}"/>
                                </listitem>
                     </listbox>
                </n:td>
            </n:tr>
            <n:tr>
                <n:td>

                </n:td>
                <n:td>

                </n:td>
                <n:td>
                     <button label="Submit" onClick='
                     import com.dokuescrow.dto.Activity;
                     ArrayList al = new ArrayList();
                        for (Activity li : selectedUserAcc)
                        {
                            al.add(li.activityId);
                        }
                        alert(al);
                     '/>
                </n:td>
            </n:tr>

我的问题是,如何在我的控制器类中获取所选值,我使用onClick='..在我的按钮中进行测试,如果我在控制器中传递了操作,则选择的值UserUcc不为null并且就像我想要的那样class(例如,使用方法),我打印出来的值是null ..有人想帮我解决我班上的错误吗?

我在控制器中的方法是这样的:

public void onClick$submit(Event event){
        try {

            ArrayList al = new ArrayList();
                        for (Activity li : selectedUserAcc)
                        {
                            al.add(li.getActivityId());
                        }
           alert(al.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
希望有人可以帮助我..谢谢..:D

1 个答案:

答案 0 :(得分:2)

好吧,在谷歌搜索,搜索和尝试(:D)后,我得到了这个问题的答案,你必须要做的就是在你的控制器中调用转换器,我从ZK论坛here获得转换器 ,并将返回更改为对象,(bot返回null),我的prgram将是这样的:

 SelectedItemConverter select=new SelectedItemConverter();

       for (Activity li : (Set<Activity>)select.coerceToBean(selectedUserAcc, getListGent()))
                        {
                            al.add(li);
                        }


                        List<Activity> act=al;

所以我得到了我想要的所选物品..谢谢你的注意..:D

litGen是我的lisbox ID