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

来源:互联网 发布:mac边充电边用好吗 编辑:程序博客网 时间:2024/05/16 23:37
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>
原创粉丝点击