分别遍历角色集合和权限集合,交替显示角色名称和属于该角色的权限集合,一行四列的形式显示在页面中
<table cellpadding="3" cellspacing="0" width="100%" border="0">
<!-- 遍历角色集合characterList-->
<s:iterator value="#session.characterList" var="character" status="characterstat">
<!-- 角色名称是管理员则不显示-->
<s:if test="#character.ca_name=='管理员'">
</s:if>
<s:else>
<tr>
<td colspan="4" class="category">
<!-- 角色名称-->
<input type="checkbox" name="characters" value="<s:property value="#character.ca_id"/>"><s:property value="#character.ca_name"/>
</td>
</tr>
<!-- 设定一个变量计数, 计数的是权限属于角色的情况,-->
<s:set var="index" value="0"/>
<!-- 遍历权限集合-->
<s:iterator value="#session.authorityList" var="authority" status="authoritystat">
<!-- 只遍历显示权限属于角色的情况-->
<s:if test="#character.ca_id==#authority.characterAuthority.ca_id">
<!-- 遍历四列为一行-->
<s:if test="#index%4==0">
<tr>
</s:if>
<td width="25%">
<!-- 权限名称-->
<input type="checkbox" name="authoritys" value="#authority.au_id"><s:property value="#authority.au_name"/>
</td>
<!-- 遍历到每行第四个,从0开始的,或者遍历到该集合的最后一个-->
<s:elseif test="#index%4==3||#authortitystat.last">
</tr>
</s:elseif>
<!-- 计数加1-->
<s:set var="index" value="#index+1"/>
</s:if>
</s:iterator>
</s:else>
</s:iterator>
</table>
显示出的效果就是先显示角色,再显示属于该角色的权限名,依次交替显示,部分截图