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