1. 程式人生 > >struts2標籤遍歷各種形式資料集合

struts2標籤遍歷各種形式資料集合

在類中定義的集合型別如下:
private String [] arryStr;
	
private List<User> list;
	
private Map<String,String> map;
	
private Map<Integer,User> userMap;
	
private Map<String,String[]> arrayMap;
	
private Map<String,List<User>> userListMap;
private List<Object[]> olist;

 對應的在jsp頁面中使用struts2標籤遍歷如下:
 <body>
  	<center>
  	<br/>======iterator遍歷String 字元陣列======<br/>
  		<s:iterator value="arryStr" id="array">
  		   <s:property value="array"/><br/>
  		</s:iterator>
  	<div></div>
  	<br/>======iterator遍歷List集合======<br/>
  	<table border="1" width="50%" cellpadding="0" cellspacing="0">
  		<tr style="background-color: yellow">
  			<td>id</td>
  			<td>name</td>
  			<td>pwd</td>
  			<td>age</td>
  		</tr>
  		<s:iterator value="list" id="array">
  			<tr>
  		   	<td><s:property value="id"/></td>
	  		<td><s:property value="name"/></td>
	  		<td><s:property value="pwd"/></td>
	  		<td><s:property value="age"/></td>
	  		</tr>
  		</s:iterator>
  	</table>
 
  	<br/>======iterator遍歷Map中的String字串======<br/>
  	<s:iterator value="map" id="column">
  	<s:property value="#column"/><br/>
  	Key:<s:property value="key"/><br/>
  	Value:<s:property value="value"/><br/>
  	</s:iterator>
  	<div></div>
  	<br/>======iterator遍歷Map中的User 物件(Object)======<br/>
  	<table border="1" width="50%" cellpadding="0" cellspacing="0">
  		<tr style="background-color: yellow">
  			<td>key=value</td>
  			<td>id</td>
  			<td>name</td>
  			<td>pwd</td>
  			<td>age</td>
  		</tr>
  		<s:iterator value="userMap" id="column">
	  	<tr>
		  	<td><s:property value="#column"/></td>
		  	<td><s:property value="value.id"/></td>
		  	<td><s:property value="value.name"/></td>
		  	<td><s:property value="value.pwd"/></td>
		  	<td><s:property value="value.age"/></td>
	  	</tr>
	  </s:iterator>
	  </table>
	  <br/>======iterator遍歷Map中的String字元陣列======
  		<s:iterator value="arrayMap" id="column">
		  	<div><s:property value="#column"/></div>
		  	-------------------key:<s:property value="key"/>--------------------<br/>
		  	<s:iterator value="value" id="col">
		  		<s:property value="col"/><br/>
		  	</s:iterator>
	  		<div></div>
	  	</s:iterator>
	  	
	  <br/>======iterator遍歷Map中的List集合======
	  <table border="1" width="50%" cellpadding="0" cellspacing="0">
  		<tr style="background-color: yellow">
  			<td>key</td>
  			<td>id</td>
  			<td>name</td>
  			<td>pwd</td>
  			<td>age</td>
  		</tr>
  		<s:iterator value="userListMap" id="column">
  			<s:set var="total" name="total" value="#column.value.size"/>
		  	<s:iterator value="#column.value" id="col" status="st">
		  	<tr>
		  		<s:if test="#st.first"><td rowspan="${total}"><s:property value="#column.key"/></td></s:if>
		  		<td><s:property value="id"/></td>
		  		<td><s:property value="name"/></td>
		  		<td><s:property value="pwd"/></td>
		  		<td><s:property value="age"/></td>
		  	</tr>
		  	</s:iterator>
	  	</s:iterator>
	  </table>
	   <br/>======iterator遍歷object[]中的List集合======
	  <table border="1" width="50%" cellpadding="0" cellspacing="0">
  		<tr style="background-color: yellow">
  			<td>key</td>
  			<td>id</td>
  			<td>name</td>
  		</tr>
  		<s:iterator value="olist" id="value"  status="st">
		  	<tr>
		  		<td><s:property value="olist[#st.index][0]"/></td>
		  		<td><s:property value="olist[#st.index][1]"/></td>
		  		<td><s:property value="olist[#st.index][2]"/></td>
		  	</tr>
	  	</s:iterator>
	  </table>
  	</center>	  
  </body>

本人測試木有問題,歡迎大家參考

另外附上struts2遍歷集合的用法介紹:

struts2的s:iterator 可以遍歷 資料棧裡面的任何陣列,集合等等以下幾個簡單的demo:
s:iterator 標籤有3個屬性:
   value:被迭代的集合
   id   :指定集合裡面的元素的id
    status迭代元素的索引

1:jsp頁面定義元素寫法 陣列或list


<s:iterator value="{'1','2','3','4','5'}"id='number'>
   <s:property value='number'/>A
</s:iterator>
列印結果為: 1A2A3A4A5A

2:索引的用法
如果指定了status,每次的迭代資料都有IteratorStatus的例項,它有以下幾個方法

<s:iterator 中的status 使用方法

1:#status.odd 當前元素索引是否奇數行

2:#status.even 當前元素索引是否偶數

3:#status.count 當前迭代了幾個元素
4:#status.index當前元素索引,從0開始『#status.count=#status.index+1』

5:#status.first 當前是否第一個元素
6:#status.last 當前是否最後一個元素
7:#status.modules(int)當前行數取模