How to retrieve value from linkedhashmap using iterators in Struts2…?

前端 未结 2 572
南笙
南笙 2021-01-26 18:18

I have function which return LinkedHashMap in Struts2 and i just came to know that we cannot use for loop in struts2 instead we have to use Iterators, and am new to struts

相关标签:
2条回答
  • 2021-01-26 18:46

    You should iterate over List of Map instead of Map of List


    Example :

    @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>
    

    The listOfMap also can use as a dataSource for Struts2 JasperReports Plugin.

    0 讨论(0)
  • 2021-01-26 18:57

    You can use s:iterator over a map.

    <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>
    

    This iterates over the map using Map.Entry and then iterates over your value list using another iterator and iterator status to add "," unless it's the last entry.

    0 讨论(0)
提交回复
热议问题