日期:2014-05-20  浏览次数:20666 次

strusts2中<s:iterator>问题
现在做项目遇到一个问题,我数据库中有两个表,相册表albuminfo和照片表photoinfo,相册表不是照片表的外键,但他们通过一个字段关联albuminfo.id和photoinfo.albumid,我想展示相册时,使用与之对应的图片中的第一张照片,怎么实现?
通过用户或得了该用户的相册集合albumSet和照片的集合photoSet
我在页面中这样写的
<s:iterator value="albumSet" var=a>
  <s:iterator value="photoSet" var="p">
  <s:if test="#a.id==#p.albumid">
  <img src="${pageContext.request.contextPath}/upload/${p.photourl}"
  </s:if>
  </s:iterator>
</s:iterator>
这样写出错,请问高手怎么解决这个问题,实现这种效果,谢谢大家了!

------解决方案--------------------
<s:iterator value= "albumSet " var=a>
<s:iterator value= "photoSet " var= "p ">
<s:if test= "#a.id==#p.albumid ">


albumSet (#a.id)
是哪里的值啊?
------解决方案--------------------
用#p.first获得第一张照片呢?

iterator标签中具有一些方法: 
boolean isEven() 当前迭代元素索引是否为偶数; 
boolean isOdd() 当前迭代元素索引是否为奇数; 
boolean isLast() 是否为最后一条元素; 
boolean isFirst()是否为第一条元素
------解决方案--------------------
<s:iterator value="albumSet" id="a">
<s:iterator value="photoSet" id="p">
<s:if test="#a.id==#p.albumid">
<img src="<s:property value="pageContext.request.contextPath"/>/upload/<s:property value="p.photourl"/>"
</s:if>
</s:iterator>
</s:iterator>

------解决方案--------------------

<s:iterator value="albumSet" id="a">
<s:iterator value="photoSet" id="p">
<s:if test="#p.first">
<img src="<s:property value="pageContext.request.contextPath"/>/upload/<s:property value="p.photourl"/>"
</s:if>
</s:iterator>
</s:iterator>