springMVC 在分层,视图层的数据一般怎么输出


如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的数据如何输出




11 个解决方案

#1


#2


如果 book 是对象,可以 book.属性 进行输出

#3


可以定义一个集合类似List<Map<AAA,List<BBB>>这样,后台通过查询组合成这样的集合,页面用EL表达式通过foreach循环就可以显示出来;
最外层的List是表示要显示的AAA集合,List中的Map是表示AAA和AAA对应的BBB集合,这里要注意重写一下AAA的hash函数和equal函数,使AAA可以作为Map的key

#4


看你的样子,book是user类的一个集合吧,也按user那输出呗

#5


可能要对查询出来的数据再次处理下
AAA中添加一个List<Book> books

循环结果集,根据用户查询出他的book添加到books中

页面上就用 ${repo.bookName}  
AAA中添加一个方法:
public String getBookName(){
for(..){
累加books中的bookName
}
return bookName;
}

#6


引用 3 楼 ZSMJ_2011 的回复:
可以定义一个集合类似List<Map<AAA,List<BBB>>这样,后台通过查询组合成这样的集合,页面用EL表达式通过foreach循环就可以显示出来;
最外层的List是表示要显示的AAA集合,List中的Map是表示AAA和AAA对应的BBB集合,这里要注意重写一下AAA的hash函数和equal函数,使AAA可以作为Map的key


这个我知道,但会不会很消耗内存

#7


引用 5 楼 thc1987 的回复:
可能要对查询出来的数据再次处理下
AAA中添加一个List<Book> books

循环结果集,根据用户查询出他的book添加到books中

页面上就用 ${repo.bookName}  
AAA中添加一个方法:
public String getBookName(){
for(..){
累加books中的bookName
}
return bookName;
}

如果记录特别多,你可以考虑分页查询,降低内存消耗,如果数据不是特别多,这是一种简单有效的方法

#8


引用 6 楼 u010439718 的回复:
Quote: 引用 3 楼 ZSMJ_2011 的回复:

可以定义一个集合类似List<Map<AAA,List<BBB>>这样,后台通过查询组合成这样的集合,页面用EL表达式通过foreach循环就可以显示出来;
最外层的List是表示要显示的AAA集合,List中的Map是表示AAA和AAA对应的BBB集合,这里要注意重写一下AAA的hash函数和equal函数,使AAA可以作为Map的key


这个我知道,但会不会很消耗内存


如果记录特别多,可以考虑分页查询

#9


5楼正解,赞一个

#10


public String getBookName(){
for(..){
..add方法
}
return bookName;
}

#11


引用 7 楼 ZSMJ_2011 的回复:
Quote: 引用 5 楼 thc1987 的回复:

可能要对查询出来的数据再次处理下
AAA中添加一个List<Book> books

循环结果集,根据用户查询出他的book添加到books中

页面上就用 ${repo.bookName}  
AAA中添加一个方法:
public String getBookName(){
for(..){
累加books中的bookName
}
return bookName;
}

如果记录特别多,你可以考虑分页查询,降低内存消耗,如果数据不是特别多,这是一种简单有效的方法



在不分页的情况下还有没有别的方法,不通过级联关系

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com