Struts2标签中使用Map



Struts2标签<s:iterator>中使用Map

Action:
private Map<String,List<User>> usersMap; //要迭代的Map
/** Get&&Set **/
public Map<String, List<User>> getUsersMap() {
return usersMap;
}
public void setUsersMap(Map<String, List<User>> usersMap) {
this.usersMap = usersMap;
}
public String queryUsers(){
if(usersMap==null){
usersMap=new HashMap<String,List<User>>();
}
for(int i=0;i<5;i++){
List<User> us=new ArrayList<User>();
for(int j=0;j<3;j++){
User u=new User();
u.setUserId(“id”+i+”-”+j);
u.setUserName(“name”+i+”-”+j);
us.add(u);
}
usersMap.put(“unit”+i, us);
}
return “queryUsers”;
}
JSP:
<s:iterator value=”usersMap”>
<table>
<tr>
<td colspan=”3″><s:property value=”key” /></td>
</tr>
<tr>
<th>序号</th>
<th>员工ID</th>
<th>员工姓名</th>
</tr>
<s:iterator value=”value” status=”status” var=”user”>
<tr>
<td><s:property value=”#status.index+1″ /></td>
<td><s:property value=”#user.userId” /></td>
<td><s:property value=”#user.userName” /></td>
</tr>
</s:iterator>
</table>
</s:iterator>
或者这样写也可以
<s:iterator value=”usersMap.keySet()” id=”unit”>
<table>
<tr>
<td colspan=”3″><s:property value=”#unit” /></td>
</tr>
<tr>
<th>序号</th>
<th>员工id</th>
<th>员工姓名</th>
</tr>
<s:iterator value=”usersMap.get(#unit)” status=”status” var=”user”>
<tr>
<td><s:property value=”#status.index+1″ /></td>
<td><s:property value=”#user.userId” /></td>
<td><s:property value=”#user.userName” /></td>
</tr>
</s:iterator>
</table>
</s:iterator>