2

我有名为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>

但它不起作用。任何建议我做错了什么?

4

2 回答 2

5

确保您的两个对象都有适当的 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>
于 2013-01-01T15:37:58.050 回答
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>
于 2013-01-01T10:21:59.587 回答