簡體   English   中英

在Struts2中進行迭代時,如何訪問作為哈希集的對象的屬性值

[英]How to access a property value of an object that is a Hashset when iterating in Struts2

我正在嘗試學習,但對struts2標簽沒有很深的了解。 我知道,訪問集合中的對象的屬性值時,您會迭代該集合(在本例中,我將其放置為“產品”),然后可以訪問該屬性(在我的實例中甚至可以是對象)案例是圖片):

<s:iterator value="products">
  <img src="<s:property value="image.route"/>"/>
</s:iterator>

當產品集合所攜帶的對象的圖像內部帶有HashSet時,就會出現問題:

public class Product implements java.io.Serializable{
    ...
    private Set images = new HashSet(0);
    ...
}

所以問題是:我現在如何訪問圖像的路由??? 除此之外,還有幾張圖像,我只希望將名為“ main”的布爾參數標記為true的圖像,因為其他圖像在幻燈片放映中是次要的。

所有幫助將不勝感激。

干得好 :

<s:iterator value="products">
  <s:iterator value="images">
     <s:property value="main"/>
     <s:property value="route"/>
     <s:if test="main==true">
           //other code
     </s:if>
  </s:iterator>
</s:iterator>

以前沒有使用過Struts標記,但是對於產品的主圖像,您可以像下面這樣:

public class Product implements java.io.Serializable{
    ...
    private Set images = new HashSet(0);
    ...

    // Public a getter for main image -> Easy to access 'mainImage' in JSTL
    public Object getMainImage() {
        // Find your main image here. You can replace Object by your image type.
    }
}

使用OGNL選擇

<img src="<s:property value="images.{? #this.main == true}[0].route"/>"/>

並進一步閱讀選擇的第一場比賽

<img src="<s:property value="images.{^ #this.main == true}.route"/>"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM