分别遍历角色集合和权限集合,交替显示角色名称和属于该角色的权限集合,一行四列的形式显示在页面中
- <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>
<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">
<!-- 角色名称-->
<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>
显示出的效果就是先显示角色,再显示属于该角色的权限名,依次交替显示,部分截图
