我想问一下从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
答案 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