c:forEach如何取集合值?

攀峰者 2009-04-27 11:16:30
有2个实体,A和B,是一对多的关系,A中有属性Set<B> items=new HashSet<B>(),B中有属性A a=new A();数据持久化我用的是hibernate;
我想在JSP中把所有A的属性都列出来,包括Set<B> items中的第一个元素的id,这个值怎么取?
(A我已经保存在request中了) request.setAttribute("as", as);
<c:forEach items="${as}" var="a" >
<td>${a.id}</td>
<td>${a.items.id}</td> (这样写肯定是不对的)
</c:forEach>
如果Set<B>该成List<B>也可以
...全文
237 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
niuhuilin 2009-04-27
  • 打赏
  • 举报
回复
<c:forEach items="${as}" var="a" >
<td>${a.id} </td>
<td>
<c:forEach items="${a.items}" var="b" >
${b.id}
</c:forEach>
</td>
</c:forEach>
  • 打赏
  • 举报
回复
<c:forEach items="${as}" var="a" >
<td>${a.id} </td>
<td>${a.items.id} </td> (这样写肯定是不对的)
</c:forEach>
如果Set <B>该成List <B>也可以

这里a就是1个a对象 a对象中items 是b对象的集合
${a.items}就是1个a对应b的对象集合。你在循环下应该就可以了。
攀峰者 2009-04-27
  • 打赏
  • 举报
回复
请各位大侠帮帮忙,这8分是我所有的分了,都给出去了!!!
forchase 2009-04-27
  • 打赏
  • 举报
回复
这样看行不行:
<c:forEach items="${as}" var="a" >
<td>${a.id} </td>
<td>${a.items[0].id}</td><!--修改处-->
</c:forEach>
fafuhefan 2009-04-27
  • 打赏
  • 举报
回复
你如果想做到列出A的所有属性,而B只显示一个id,那么你要查询时语句就应该先写好:

如:select a.*,b.bid from tableA a left join tableB b on <表A与表B的关联条件> where <条件>;

那么这时得到一个集合时as,此时可以这么写:

<c:forEach items="${as}" var="a" >
<td>${a.id} </td>
<td>${a.bid}</td>
</c:forEach>

因为此时,bid已成为一个属性了。
攀峰者 2009-04-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 niuhuilin 的回复:]
<c:forEach items="${as}" var="a" >
<td>${a.id} </td>
<td>
<c:forEach items="${a.items}" var="b" >
${b.id}
</c:forEach>
</td>
</c:forEach>
[/Quote]
这样会把items中所有的元素都列出来的,可是我只想要显示第一项!
攀峰者 2009-04-27
  • 打赏
  • 举报
回复
只有这一种方法吗,没有一个表达式就可以搞定的吗?
YL_Show 2009-04-27
  • 打赏
  • 举报
回复
学习

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧