我有名为
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 提供的称为投影的功能。
<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>