用Struts2 标签迭代显示 Map

来源:互联网 发布:win10最好用优化软件 编辑:程序博客网 时间:2024/06/04 18:50

今天有一网友问过我这样一个问题,他用 Map 来封装数据层返回的数据,想在 Jsp 页面通过 struts2 标签来显示 map 中的键值,说真的以前开发封装数据都是用 List ,从来没有用过 Map 来封装数据,最多是用来保存用户登录信息,以方便用来判断用户是否以登录, 但用 Map 来封装数据实在不是明智之举,  但我以前也从没这样子作过,所以在网上找了好久也没找到相关的信息, 后来一想struts2 可以直接用来显示action 中的属性值,所以就想出了以下方式解决了这个问题

 

具体代码如下: action

public String execute() throws Exception ...{
    if(this.getUserName().equals("chen") && this.getPwd().equals("chen")) ...{
        ActionContext.getContext().getSession().put("userName", this.getUserName());
        User user = new User();
        user.setName("a");
        user.setCode("A");
        map.put(1, user);
        user = new User();
        user.setName("b");
        user.setCode("B");
        map.put(2, user);
        return SUCCESS;
    }
    return ERROR;
}

 

以下是 jsp

<%@taglib uri="/struts-tags" prefix="s"%>

<table>
    <s:iterator value="map.keySet()" id="id">
        <tr>

            <td><s:property value="#id"/></td>
            <s:iterator value="map.get(#id)">
                <td><s:property value="name"/></td>
                <td><s:property value="code"/></td>
            </s:iterator>
        </tr>
    </s:iterator>
</table>