我正在努力学习,对struts2标签没有超强的知识。我知道当访问集合中的对象的属性值时,你迭代集合(在我将放置的示例中是“products”)然后你可以访问属性(甚至可以是一个对象,在我的case是图片):
<s:iterator value="products">
<img src="<s:property value="image.route"/>"/>
</s:iterator>
当产品集合携带的对象内部带有带有图像的HashSet时,问题出现了:
public class Product implements java.io.Serializable{
...
private Set images = new HashSet(0);
...
}
所以问题是:我现在如何访问图像的路径???除此之外,还有几个图像,我只想要一个名为“main”的布尔参数标记为true的图像,因为其他图像在幻灯片中是次要的。
非常感谢所有帮助。
答案 0 :(得分:0)
你走了:
<s:iterator value="products">
<s:iterator value="images">
<s:property value="main"/>
<s:property value="route"/>
<s:if test="main==true">
//other code
</s:if>
</s:iterator>
</s:iterator>
答案 1 :(得分:0)
之前未使用Struts标签,但对于产品的MAIN图像,您可以执行以下操作:
public class Product implements java.io.Serializable{
...
private Set images = new HashSet(0);
...
// Public a getter for main image -> Easy to access 'mainImage' in JSTL
public Object getMainImage() {
// Find your main image here. You can replace Object by your image type.
}
}
答案 2 :(得分:0)
<img src="<s:property value="images.{? #this.main == true}[0].route"/>"/>
并进一步阅读选择第一场比赛
<img src="<s:property value="images.{^ #this.main == true}.route"/>"/>