如javaBean AAA BBB
id id
userName book
A_id
AAA有10条数据, 对象BBB中的数据是通过对象AAA查找出来的
页面显示要求
用户名 书名
user1 book1 book2 book3
user3 book1 book2 book3
user2 book1 book2 book3
如何 将页面所需要的数据,重新放到一个新对象里面,
将这个对象传到页面(repos)
然后直接用EL表达式输出
如这样
<c:forEach items="${repos}" var="repo" varStatus="step">
${repo.userName}
<c:forEach>
book的数据如何输出
------解决方案--------------------
可以定义一个集合类似List<Map<AAA,List<BBB>>这样,后台通过查询组合成这样的集合,页面用EL表达式通过foreach循环就可以显示出来;
最外层的List是表示要显示的AAA集合,List中的Map是表示AAA和AAA对应的BBB集合,这里要注意重写一下AAA的hash函数和equal函数,使AAA可以作为Map的key
------解决方案--------------------
可能要对查询出来的数据再次处理下
AAA中添加一个List<Book> books
循环结果集,根据用户查询出他的book添加到books中
页面上就用 ${repo.bookName}
AAA中添加一个方法:
public String getBookName(){
for(..){
累加books中的bookName
}
return bookName;
}
------解决方案--------------------
如果记录特别多,你可以考虑分页查询,降低内存消耗,如果数据不是特别多,这是一种简单有效的方法