s:iterator–iterator遍历生成表格



s:iterator–iterator遍历生成表格

分别遍历角色集合和权限集合,交替显示角色名称和属于该角色的权限集合,一行四列的形式显示在页面中

 

 

 

 

 

  1. <table cellpadding=”3″ cellspacing=”0″ width=”100%” border=”0″>
  2.     <!– 遍历角色集合characterList–>
  3.    <s:iterator value=”#session.characterList” var=”character” status=”characterstat”>
  4.         <!– 角色名称是管理员则不显示–>
  5.         <s:if test=”#character.ca_name==’管理员’”>
  6.     </s:if>
  7.     <s:else>
  8.         <tr>
  9.                 <td colspan=”4″ class=”category”>
  10.                     <!– 角色名称–>
  11.                     <input type=”checkbox” name=”characters” value=”<s:property value=”#character.ca_id”/>”><s:property value=”#character.ca_name”/>
  12.                 </td>
  13.             </tr>
  14.                 <!– 设定一个变量计数, 计数的是权限属于角色的情况,–>
  15.                 <s:set var=”index” value=”0″/>
  16.                 <!– 遍历权限集合–>
  17.             <s:iterator value=”#session.authorityList” var=”authority” status=”authoritystat”>
  18.                     <!– 只遍历显示权限属于角色的情况–>
  19.             <s:if test=”#character.ca_id==#authority.characterAuthority.ca_id”>
  20.                         <!– 遍历四列为一行–>
  21.                 <s:if test=”#index%4==0″>
  22.                     <tr>
  23.                 </s:if>
  24.                         <td width=”25%”>
  25.                                     <!– 权限名称–>
  26.                                     <input type=”checkbox” name=”authoritys” value=”#authority.au_id”><s:property value=”#authority.au_name”/>
  27.                                 </td>
  28.                         <!– 遍历到每行第四个,从0开始的,或者遍历到该集合的最后一个–>
  29.             <s:elseif test=”#index%4==3||#authortitystat.last”>
  30.                 </tr>
  31.                 </s:elseif>
  32.                         <!– 计数加1–>
  33.             <s:set var=”index” value=”#index+1″/>
  34.             </s:if>
  35.             </s:iterator>
  36.     </s:else>
  37.     </s:iterator>
  38. </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>


 

 

 

 

 

显示出的效果就是先显示角色,再显示属于该角色的权限名,依次交替显示,部分截图