因为checkboxlist 出来的所有元素都只能在一行,我想每个元素都占一行,于是
我的代码如下:<table width="90%" height="100%" border="0">
<s:iterator value="listRole" status="stat">
<tr <s:if test="#stat.odd">class="row1"</s:if>
<s:else>class="row2"</s:else>>
<td align=left>
<s:checkboxlist name="roleListSelected" list="#stat.index" listKey="roleId" listValue="roleName"/>
</td>
</s:iterator>
</table>虽然是成功了,但是发现了一个大BUG,就是我点每个元素的文字时,就是勾后面的文字,最后一行的元素都会被选上,点勾没事,这是为什么?为什么?
我的代码如下:<table width="90%" height="100%" border="0">
<s:iterator value="listRole" status="stat">
<tr <s:if test="#stat.odd">class="row1"</s:if>
<s:else>class="row2"</s:else>>
<td align=left>
<s:checkboxlist name="roleListSelected" list="#stat.index" listKey="roleId" listValue="roleName"/>
</td>
</s:iterator>
</table>虽然是成功了,但是发现了一个大BUG,就是我点每个元素的文字时,就是勾后面的文字,最后一行的元素都会被选上,点勾没事,这是为什么?为什么?
想占一行的话,可以修改free模板
我的水平还未到改模板的时候,呵呵
<s:iterator value="listRole" status="stat">
<tr <s:if test="#stat.odd">class="row1"</s:if>
<s:else>class="row2"</s:else>>
<td align=left>
<s:checkbox name="selectRoleList" id="%{roleId}" value="roleListSelected[#stat.index]" fieldValue="%{roleId}"/>
<s:property value="roleName"/>
</td>
</s:iterator>
</table>
我改成了单选框
我从数据库查出被选择的项,放到roleListSelected这个LIST里,然后roleListSelected[#stat.index]"相当于roleListSelected[i]" 。
如果提交的话,页面会自动将选择了的项目存在selectRoleList这个LIST(也可定义为数组)中,就可以传到action中