我有名为allAlbums
和allPhotos
的对象列表。现在我想显示每张专辑中的所有照片,所以我使用了以下方法。我的代码是
<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>
但它不起作用。有什么建议我做错了吗?
答案 0 :(得分: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>
答案 1 :(得分: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>