如何一起使用struts <s:iterator> 和<s:if>?

Ana*_*nda 2 java jsp struts2 ognl

我有名为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>
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*r M 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>
Run Code Online (Sandbox Code Playgroud)