现在的问题是 从数据库取出对应的城市的checkbox字段,为IsDisplay,例如IsDisplay的值为12的时候,对应的就显示手机和pad,即8+4。计算的方法已经有了,主要是在循环输出的时候怎么对checkbox赋值,而且在修改checkbox的时候要取值并存入对应城市的IsDisPlay字段,贴部分代码,求教
<s:iterator value="city" id="city" status="ci">
<td width="20%"><s:property value="provDesc"/></td>
<td width="40%">
web:<s:checkbox name="isDisplayID" id="isDisplay1" class="isdisclass" disabled="true" data="1"></s:checkbox>
wap:<s:checkbox name="isDisplayID" id="isDisplay2" class="isdisclass" disabled="true" data="2"></s:checkbox>
手机:<s:checkbox name="isDisplayID" id="isDisplay4" class="isdisclass" disabled="true" data="4"></s:checkbox>
pad:<s:checkbox name="isDisplayID" id="isDisplay8" class="isdisclass" disabled="true" data="8"></s:checkbox>
</td>
</s:iterator>
写判断12是否=8+4的方法:
static Boolean compare(int x, int y) { int div = 0; int mod = 0; for (int i = 8; i >= 1; i = i / 2) { div = x / i; mod = x % i; if (div > 0) { x = mod; if (i == y) { return true; } } } return false; }
调用:
Boolean r = compare(12,8);//true
Boolean r = compare(12,4);//true
Boolean r = compare(12,1);//false
页面上调用这个方法判断显示是否要选中,很久不搞java,struts标签怎么写忘了。
你好,先谢谢你的回答,你写的是根据isDisplay判断checkbox的的check属性,这个计算方法我已经实现了,我的问题是后面的,即:在修改checkbox的值的时候怎么取值并保存到city这个list中。。请看看图片,你会明白我的意思
@LongDescription:
那只能把城市ID也放到checkbox里了:
<input type="cities" name="isDisplayID" value="城市ID_1"/>
后台的取到的cities就是个字符串list,再组装成City的list吧。
@向往-SONG: 你好,我已解决该问题,谢谢你的回答