【问题标题】:How to retrieve value from linkedhashmap using iterators in Struts2......?如何使用Struts2中的迭代器从linkedhashmap中检索值......?
【发布时间】:2011-05-31 07:21:44
【问题描述】:

我有在 Struts2 中返回 LinkedHashMap 的函数,我才知道我们不能在 struts2 中使用 for 循环,而是必须使用迭代器,而且是 struts 的新手

任何人都可以帮助我使用迭代器从linkedhashmap中检索值,下面是hashmap中值的排列方式:

 LinkedHashMap<String, ArrayList<String>> topSuppliers = new LinkedHashMap<String, ArrayList<String>>();

    while(resultset.next()){

    ArrayList<String> innerList = new ArrayList<String>();

    String manufId = resultset.getString("manufacturer_id");
    String manufLogo = resultset.getString("SUPPLIER_LOGO_IMAGE");
    String manufName = resultset.getString("MANUFACTURER_NAME");
    String manufURL = resultset.getString("MANUFACTURER_URL");

     innerList.add(manufId);
     innerList.add(manufLogo);
     innerList.add(manufName);
     innerList.add(manufURL);

     topSuppliers.put(manufName,innerList);
    }
return topSuppliers;

我想在一组 4 个制造商中展示它们:

Set1:  1,2,3,4
Set2:  5,6,7,8
Set3:  9,10,11,12
etc......

谢谢…………

【问题讨论】:

    标签: struts2 iterator linkedhashmap


    【解决方案1】:

    您应该迭代 List of Map 而不是 Map of List


    示例

    @Getter
    private List<Map> listOfMap = Lists.newArrayList();
    
    public String execute() {
    
        while (resultset.next()) {
            final Map<String, String> map = Maps.newHashMap();
    
            map.put("manufId", resultset.getString("manufacturer_id"));
            map.put("manufLogo", resultset.getString("SUPPLIER_LOGO_IMAGE"));
            map.put("manufName", resultset.getString("MANUFACTURER_NAME"));
            map.put("manufURL", resultset.getString("MANUFACTURER_URL"));
    
            listOfMap.add(map);
        }
    
        return SUCCESS;
    }
    

    <s:iterator value="listOfMap">
      ${manufId}
      ${manufLogo}
      ${manufName}
      ${manufURL}
    </s:iterator>
    

    listOfMap 也可以用作 Struts2 JasperReports PlugindataSource

    【讨论】:

      【解决方案2】:

      您可以在地图上使用 s:iterator。

      <s:iterator value="topSuppliers">
        <s:property value="key" />: <s:iterator value="value" status="status"><s:property /><s:if test="!#status.last">,</s:if></s:iterator>
      </s:iterator>
      

      这使用 Map.Entry 迭代地图,然后使用另一个迭代器和迭代器状态迭代您的值列表以添加“,”,除非它是最后一个条目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-27
        • 1970-01-01
        • 1970-01-01
        • 2017-12-14
        • 1970-01-01
        • 2022-08-11
        相关资源
        最近更新 更多