2010-06-15 45 views
5

Tôi có một đối tượng HashMap mà tôi đang nhận được trên trang JSP.Lặp lại trên hashmap trong JSP trong ứng dụng struts

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

Bây giờ tôi cần lặp lại nội dung này và hiển thị trên JSP. Lớp Gift_product chứa hai trường: nameprice.

JSP đầu ra nên

serial no.   product name  price 
17     Doll   67 

Làm thế nào tôi có thể đạt được điều đó?

+0

vui ..., tôi không thêm phần Generics trong nguồn (Tôi chỉ được định dạng lại thành mã) nhưng lịch sử sửa đổi có vẻ không đồng ý trong điều này? – rsp

+0

@rsp: đôi khi generics được hiểu là thẻ html và cắt ra khỏi đầu ra được định dạng. Định dạng bài viết chính xác như mã sau đó làm cho chúng hiển thị. Sử dụng "Xem nguồn" trên bản sửa đổi để xác minh điều này. –

Trả lời

10

Kiểm tra thanh chống <logic:iterate>. Khi iterating trên một HashMap, mỗi mục là một java.util.Map.Entry, để có được chìa khóa (trong ví dụ này số serial) và giá trị (đối tượng Gift_product) ra sử dụng keyvalue tính như thế này:

Đầu tiên thiết lập HashSet như một thuộc tính trong lớp hành động của bạn request.setAttribute("gift_hm", gift_hm); và sau đó trong 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> 
+0

là nó trực tiếp nhận được nó nối tiếp không có đó là trong phần quan trọng, tên sản phẩm đó là value.getProdutname() và giá value.getPrice() ... không khá chắc chắn .. – Pedantic

+0

Tôi sửa đổi nó để in các HashMap chìa khóa (mapEntry.getKey) làm số sêri và kéo đối tượng Gift_product ra khỏi mapEntry.getValue() – krock

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

một này làm việc cho tôi (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> 
Các vấn đề liên quan