您的位置:首页 > 编程语言 > Java开发

struts2中checkbox结合iterator的使用

2010-01-12 13:28 435 查看
该文是为了解决特定的问题,不介绍checkbox及iterator的最基本使用。如需要了解struts中iterator的一些使用细节可以参看struts2中iterator标签的相关使用

【问题】有类似List<Object[]>,其中Object [] 中存放{int,String,boolean} 这样的一个数据结构。

【要求】在checkbox中显示该List,其中checkbox对应的值为Object数组中的 int , 选项名对应String 而该checkbox是否选中则对应boolean

【实现】
<s:set name="a_obj1" value="{1, 'name_1', 0}" />
<s:set name="a_obj2" value="{2, 'name_2', 1}" />
<s:set name="a_obj3" value="{3, 'name_3', false}" />
<s:set name="a_obj4" value="{4, 'name_4', false}" />
<s:set name="a_obj5" value="{5, 'name_5', true}" />
<!-- 用set构造一个List<Object[]>式的数据结构 -->
<s:set name="lsi" value="{#a_obj1,#a_obj2,#a_obj3,#a_obj4,#a_obj5}" />
<s:iterator value="#lsi" status="ind" id="dfd">
<s:checkbox name="dd_%{#ind.index}" value="#lsi[#ind.index][2]">
<s:property value="#lsi[#ind.index][1]" />
</s:checkbox>

</s:iterator>
或者
<s:iterator value="#lsi">
<s:checkbox name="dd_%{[0].top[0]}" value="[0].top[2]">
<s:property value="[0].top[1]" />
</s:checkbox>

</s:iterator>


【总结】

当循环取出List中的Object数组对象后,要根据当前迭代的位置获取该数组中对应的数值,struts会自动进行相应的数据类型转换。

第二种方式中[0]代表当前对象在 栈 中的地址,即List中当前Object[]在 栈 中的地址;[0].top代表当前Object[]对象;[0].top[1]则取出是Object数组的第一个元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: