2013-01-01 27 views
2

我有名爲allAlbumsallPhotos的對象列表。現在我想要顯示每張專輯中的所有照片,因此我使用了以下方法。我的代碼是如何將struts <s:iterator>和<s:if>一起使用?

<s:iterator value="allAlbums"> 
    <s:iterator value="allPhotos"> 
    <s:if test="%{#allAlbums.albumid == #allPhotos.albumid}"> 
     <s:property value="photourl"/> 
    </s:if> 
    </s:iterator>        
</s:iterator> 

但它不工作。任何建議我做錯了什麼?

+1

你爲什麼不能用這個嘗試查詢。 U只應發送具有相同相冊ID的照片。 – muthu

回答

4

確保您的兩個對象都有適當的getter/setter,然後您可以使用OGNL提供的被稱爲投影的功能。

<s:iterator value="allAlbums" var="album"> 
    <s:iterator value="allPhotos.{? #this.albumid == #album.albumid}"> 
     <s:property value="photourl"/> 
    </s:iterator>        
</s:iterator> 
+0

感謝@Aleksandr這個完美的作品 – Ananda

+0

歡迎您。 –

2

您正在引用錯誤的對象。定義一個var屬性,您可以參考並引用它。

<s:iterator var="album" value="allAlbums"> 
    <s:iterator var="photo" value="allPhotos"> 
    <s:if test="#album.id == #photo.albumId"> 
     <s:property value="photoUrl"/> 
    </s:if> 
    </s:iterator>        
</s:iterator> 
+0

我嘗試了上述更改,但仍然無法正常工作。 – Ananda

+0

@bril什麼的id在專輯中的數據類型? –

+0

失神的源代碼發佈是正確的,這取決於你如何運用它在你的情況。 –

相關問題