我有名为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>
但它没有用。有什么建议我做错了什么?
确保你的对象都有适当的getter / setter,然后你可以使用OGNL提供的名为projection的功能。
<s:iterator value="allAlbums" var="album">
<s:iterator value="allPhotos.{? #this.albumid == #album.albumid}">
<s:property value="photourl"/>
</s:iterator>
</s:iterator>
您正在引用错误的对象。为您将引用的记录定义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>