struts2中checkbox结合iterator的使用

该文是为了解决特定的问题,不介绍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数组的第一个元素

转载于:https://my.oschina.net/yeelee/blog/650907

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值