【问题标题】:Iterating over hashmap in JSP in struts application在struts应用程序中迭代JSP中的hashmap
【发布时间】:2010-06-15 10:52:18
【问题描述】:

我在 JSP 页面上有一个 HashMap 对象。

HashMap<Integer,Gift_product> gift_hm = new HashMap<Integer,Gift_product>();
gift_hm.put(17,new Gift_product("doll",67));

现在我需要迭代它并在 JSP 上显示内容。 Gift_product 类包含两个字段:nameprice

JSP 输出应该是

serial no.           product name     price
17                    Doll            67

我怎样才能实现它?

【问题讨论】:

  • Funny ... ,我没有在源代码中添加泛型部分(我只是重新格式化为代码)但修订历史似乎不同意?
  • @rsp:有时泛型被解释为 html 标签并从格式化输出中删除。将帖子正确格式化为代码然后使它们显示出来。在修订版上使用“查看源代码”来验证这一点。

标签: java struts-1


【解决方案1】:

查看struts &lt;logic:iterate&gt; 标签。遍历 HashMap 时,每个条目都是 java.util.Map.Entry,要获取密钥(在本例中为序列号)和值(Gift_product 对象),请使用 keyvalue 属性,如下所示:

首先将 HashSet 设置为您的操作类中的属性,例如request.setAttribute("gift_hm", gift_hm); 然后在jsp中:

<logic:iterate id="mapEntry" name="gift_hm">
  <bean:define id="gift" name="mapEntry" property="value">
  <tr>
    <td><bean:write name="mapEntry" property="key"></td>
    <td><bean:write name="gift" property="productName"></td>
    <td><bean:write name="gift" property="price"></td>
  </tr>
</logic:iterate>

【讨论】:

  • 是不是直接获取关键部分的序列号,value.getProdutname() 和 price value.getPrice() 中的产品名称...不太清楚..
  • 我修改为将HashMap键(mapEntry.getKey)打印为序列号,并将Gift_product对象拉出mapEntry.getValue()
【解决方案2】:

这个对我有用(struts2):

<s:iterator value="giftMap" var="giftMapElement">
    <s:set var="giftKey" value="#giftMapElement.key"/>
    <s:set var="giftValue" value="#giftMapElement.value"/>
    <tr>
        <td><s:property value="#giftKey"/></td>
        <td><s:property value="#giftValue.productName"/></td>
        <td><s:property value="#giftValue.price"/></td>
    </tr>
</s:iterator> 

【讨论】:

    【解决方案3】:
    Solution
    -----------
    <s:iterator value="map">
      <h3><s:property value="key" /></h3>
      <table>
      <s:iterator value="value">
        <tr><td><s:property /></td></tr>
      </s:iterator>
      </table>
    </s:iterator>
    

    【讨论】:

      【解决方案4】:
      <logic:iterate name="FormName" property="formProperty"
                                  id="list" indexId="sno">
                          <tr>
                                      <td><bean:write name="list" property="value.giftproductVariable" /></td>
                                      <td><bean:write name="list" property="value.giftproductVariable" /></td>
      
                                  </tr>
                              </logic:iterate>
      

      【讨论】:

        猜你喜欢
        • 2014-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-19
        • 1970-01-01
        • 2020-07-08
        相关资源
        最近更新 更多