Итерирование по hashmap в JSP в приложении Struts - PullRequest
8 голосов
/ 15 июня 2010

У меня есть HashMap объект, который я получаю на странице JSP.

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

Теперь мне нужно повторить это и отобразить содержимое на JSP.Класс Gift_product содержит два поля: name и price.

Выходной сигнал JSP должен быть

serial no.           product name     price
17                    Doll            67

Как этого добиться?

Ответы [ 4 ]

12 голосов
/ 15 июня 2010

Проверьте распорки <logic:iterate> тег.При итерации по HashMap каждая запись представляет собой java.util.Map.Entry, чтобы получить ключ (в этом примере серийный номер) и значение (объект Gift_product), используйте свойства key и value, например:

Сначала установите 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>
4 голосов
/ 04 сентября 2013

Это работает для меня (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> 
1 голос
/ 29 июля 2013
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>
0 голосов
/ 23 апреля 2018
<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>
...